Reputation: 198547
I'm writing some clojure code, and I'm relying on Joda time for time handling. The problem is that I don't know what to import and the documentation isn't terribly clear about it. Now I know that somebody here can probably give me the correct answer in less than 5 seconds, but I'd rather know how to figure this one out on my own (aside from pouring through the docs until I find the correct answer).
If I were doing this in Python, I'd import the top-level package and use a combination of dir
and help
to figure out what I need to import. Is there any way to do this in clojure? Or are there any other kinds of java tools to figure this out? I'd prefer something that's command-line oriented.
Upvotes: 8
Views: 2947
Reputation: 10662
http://dishevelled.net/Generating-Clojure-import-lines-using-SLIME.html Makes it really easy to look up imports. Personally I just use the clojure function find-classes defined there from the REPL.
Upvotes: 0
Reputation: 6849
Bill Clementson has written a small piece of code that helps you view the javadoc documentation from the REPL.
Upvotes: 1
Reputation: 88796
Normally I'd go with David Grant's answer, but if you can't find any JavaDoc (!), but you have a jar file, you can use the jar utility to list the files in the jar.
The directory the class files are in map directly to its package name. For example, jar -tf joda-time-1.6.jar | more
lists DateTime.class as org/joda/time/DateTime.class
; DateTime is in the org.joda.time
package.
Upvotes: 8
Reputation: 14225
In the same way that dir
and help
will examine the documentation of packages in Python, useful information in Java can be gleaned from reading the Javadocs for a particular API. In the case of Joda Time, the web site has a direct link to the generated documentation, here:
http://joda-time.sourceforge.net/api-release/index.html (see the bottom left frame)
I can't think of anything off hand that is directly comparable to what you ask, since unless you ask the classloader for a particular class, the classloader won't load it, and you won't be able to find it.
Upvotes: 3