yazz.com
yazz.com

Reputation: 58766

How can I call a java static method in clojure?

I wish to call class on the String class. How can I access this static method?

Upvotes: 37

Views: 20046

Answers (4)

mateusz.fiolka
mateusz.fiolka

Reputation: 3100

An example is worth 100 words:

(. String (valueOf 1))

Upvotes: 25

Joost Diepenmaat
Joost Diepenmaat

Reputation: 17773

Your question has been answered, I think, but if you really do want to get the class of an unknown object, you can use the class function:

> (class "Foo")
java.lang.String

As in java, to specify classes outside of java.lang as literals, you need to either import them, or specify the full package + class name using dot (.) separators.

Upvotes: 7

amalloy
amalloy

Reputation: 91837

Class doesn't have a "class" method, nor a "class" member. The symbol String is mapped to the class java.lang.String, if what you want to get is the equivalent of Java's String.class. If you want to call a static method of the String class, the syntax is (String/methodName arg1 arg2).

Upvotes: 6

sepp2k
sepp2k

Reputation: 370092

You can call a static method using (ClassName/methodName arguments).

However class is not a static method, it's a java keyword and you don't need it in clojure. To get the Class object associated with the String class, just use String.

Upvotes: 55

Related Questions