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