簡體   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