【发布时间】:2015-04-17 04:17:04
【问题描述】:
在 clojure 中,如果我有一个命名空间,How to list the functions of a namespace? 的答案很有用,特别是 (ns-imports 'my-package) 可以告诉我有关已导入的 Java 代码的信息。我可以使用(all-ns) 找到命名空间列表。有没有类似的方法可以找到所有可用的java包列表,以及预览还没有导入的java类?
我正在分别通过:resource-paths 和:java-source-paths 从Leiningen 制作大量JAR 和.class 文件。但由于我是 Java 代码库的新手,我实际上并不知道为了导入它们而定义了哪些包。我可以用 find、xargs 和 grep 做一些事情,但如果能以编程方式提供这些信息会很好。此外,在未来,我希望能够在 Clojure 中对 Java 代码库进行“反射”,例如,注意何时定义了一个新类。
在 LISP 世界中,有一个名为 `do-external-symbols' 的函数,我在 google 上搜索了一下,找到了 2007 年的 this 讨论。似乎 Clojure 本身的问题已经解决了,但不太清楚Clojure 对 Java 的看法。
【问题讨论】:
标签: java reflection clojure leiningen