在Clojure中调用java非静态方法

时间:2015-10-03 12:26:55

标签: java methods clojure

我错误地思考了一些事情:在java.lang包中启动REPL所有Classes时Clojure导入。因此,应该能够从这些类中调用方法而无需导入它们。现在我尝试使用不同类的java.lang包,并且我无法调用(.Method)形式的一些公共方法,例如(。totalMemory)运行时类抛出IllegalArgumentException。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你需要使用它:

(.totalMemory (Runtime/getRuntime))

Clojure不会自动导入java.lang中所有类的所有方法。此外,类totalMemory中的方法Runtime不是静态方法,因此您需要指定实例来调用方法。

通过调用类getRuntime中的静态方法Runtime来获取实例。

有关如何从Clojure调用Java方法的信息,请参阅Clojure - Java Interop