Joe*_*eli 10 java reflection clojure leiningen
在clojure中,如何列出命名空间的功能的答案?如果我有一个命名空间,它是有用的,特别是(ns-imports 'my-package)可以告诉我已经导入的Java代码.我可以找到命名空间列表(all-ns).是否有类似的方法来查找所有可用java包的列表,并预览尚未导入的java类?
我正在通过从Leiningen很多JAR和.class文件的:resource-paths和:java-source-paths分别.但由于我是Java代码库的新手,我实际上并不知道为了导入它们而定义了哪些包.我可以用find,xargs和grep做一些事情,但以编程方式提供这些信息会很不错.此外,在将来,我希望能够在Clojure中对Java代码库进行"反思",例如,注意何时定义了新类.
在LISP的世界里,有一个叫功能`做外部的符号,我用Google搜索的是,调高这个从2007年的讨论,似乎事情已经解决了Clojure的本身,但它是关于Java的Clojure的看法不太清楚.
小智 1
据我记得你可以从 Clojure 调用 Java 代码。我最近从 Google 发现了一个名为“Reflections”的库,它会为您列出类路径中的所有内容。我已经用这个库分析了作为 JPA 实体的类,它非常容易使用。