繁体   English   中英

如何确定需要从Java库导入的命名空间?

[英]How do I figure out what namespace I need to import from a java library?

我正在写一些clojure代码,而且我依靠Joda时间来处理时间。 问题是我不知道要导入什么,文档并不十分清楚。 现在我知道这里的某个人可能会在不到5秒的时间内给我正确的答案,但我宁愿知道如何自己解决这个问题(除了直到我找到正确的答案才能完成文档)。

如果我在Python中执行此操作,我将导入顶级包并使用dirhelp的组合来确定我需要导入的内容。 在clojure中有没有办法做到这一点? 或者还有其他种类的java工具来解决这个问题吗? 我更喜欢以命令行为导向的东西。

通常我会选择David Grant的答案,但是如果你找不到任何JavaDoc(!),但是你有一个jar文件,你可以使用jar实用程序列出jar中的文件。

类文件直接映射到其包名的目录。 例如, jar -tf joda-time-1.6.jar | more jar -tf joda-time-1.6.jar | more列出DateTime.class as org/joda/time/DateTime.class ; DateTime位于org.joda.time包中。

dirhelp将检查Python中的包文档的方式相同,Java中的有用信息可以通过阅读特定API的Javadoc来收集。 在Joda Time的情况下,该网站直接链接到生成的文档,在这里:

http://joda-time.sourceforge.net/api-release/index.html (见左下方框架)

我想不出任何可以直接与你问的东西相媲美的东西,因为除非你向类加载器询问特定的类,否则类加载器不会加载它,你将无法找到它。

Bill Clementson编写了一小段代码 ,可以帮助您查看REPL中的javadoc文档。

http://dishevelled.net/Generating-Clojure-import-lines-using-SLIME.html使查找导入变得非常容易。 我个人只是使​​用REPL中定义的clojure函数find-classes。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM