通过 DynamicClassLoader 加载的类返回 .getPackage 为 nil。CIDER 和 vim-fireplace 等工具依赖于这些信息来实现诸如补全提示等功能。
(.getPackage String) ;; => #<Package package java.lang, Java 平台 API 规范,版本 1.7> (deftype T []) (.getPackage T) ;; => nil
建议:在 DynamicClassLoader.defineClass()过程中,对定义中的类调用 definePackage()(类似于 URLClassLoader 所做的那样)。
补丁:clj-1550-v4.patch
审核:Alex Miller