我错误地思考了一些事情:在java.lang包中启动REPL所有Classes时Clojure导入。因此,应该能够从这些类中调用方法而无需导入它们。现在我尝试使用不同类的java.lang包,并且我无法调用(.Method)
形式的一些公共方法,例如(。totalMemory)运行时类抛出IllegalArgumentException。有什么想法吗?
答案 0 :(得分:1)
你需要使用它:
(.totalMemory (Runtime/getRuntime))
Clojure不会自动导入java.lang
中所有类的所有方法。此外,类totalMemory
中的方法Runtime
不是静态方法,因此您需要指定实例来调用方法。
通过调用类getRuntime
中的静态方法Runtime
来获取实例。
有关如何从Clojure调用Java方法的信息,请参阅Clojure - Java Interop。