如何在clojure中调用java静态方法?

如何在clojure中调用java静态方法?,clojure,Clojure,我希望调用字符串类上的类。如何访问此静态方法?一个示例值100字: (. String (valueOf 1)) 您可以使用(ClassName/methodName参数)调用静态方法 然而,class不是一个静态方法,它是一个java关键字,在clojure中不需要它。要获取与字符串类关联的类对象,只需使用String类既没有“Class”方法,也没有“Class”成员。如果您想要得到的是java的String.class,则符号字符串映射到类java.lang.String。如果您想调用S

我希望调用字符串类上的类。如何访问此静态方法?

一个示例值100字:

(. String (valueOf 1))

您可以使用
(ClassName/methodName参数)
调用静态方法


然而,
class
不是一个静态方法,它是一个java关键字,在clojure中不需要它。要获取与字符串类关联的类对象,只需使用
String

类既没有“Class”方法,也没有“Class”成员。如果您想要得到的是java的
String.class
,则符号字符串映射到类java.lang.String。如果您想调用String类的静态方法,语法是
(String/methodName arg1 arg2)

我想您的问题已经得到了回答,但是如果您确实想获得未知对象的类,可以使用class函数:

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

与在java中一样,要将java.lang之外的类指定为文本,您需要导入它们,或者使用点(.)分隔符指定完整的包+类名。

如果我有一个类的实例,但没有类名本身,如何调用静态方法?((类我的实例)staticMethod 10)。我得到了一个错误“找不到匹配的方法staticMethod为类java.lang.class获取1个参数”,即使(类我的实例)没有返回java.lang.class。