我是否错误地思考了一些事情:Clojure 在启动 REPL java.lang 包中的所有类时导入。因此,人们应该能够从这些类中调用方法,而无需导入它们。现在我正在尝试使用 java.lang 包的不同类,并且我无法以 (.Method)
的形式调用一些公共(public)方法,例如运行时的 (. totalMemory )类抛出 IllegalArgumentException。有什么想法吗?
最佳答案
您需要使用这个:
(.totalMemory (Runtime/getRuntime))
Clojure 不会自动导入 java.lang
中所有类的所有方法。另外,Runtime
类中的totalMemory
方法不是静态方法,因此您需要指定调用该方法的实例。
您可以通过调用Runtime
类中的静态方法getRuntime
来获取实例。
参见Clojure - Java Interop有关如何从 Clojure 调用 Java 方法的信息。
关于java - Clojure中调用java非静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32922545/