java - Clojure中调用java非静态方法

标签 java methods clojure

我是否错误地思考了一些事情: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/

相关文章:

静态修改器方法的 Java 命名约定

Java 使用 do-while 和 for-loop 创建解决用户输入错误的新方法

Clojure - 发生无序的副作用

Clojure 不进行 nil 检查

postgresql - 将 clojure 连接到 Postgresql 数据库

java - 如何根据指定的 JTextField 移动多个 JSlider

java - 如何从字符串中删除最后一个字符?

java - 整数数组开关Android JAva

java - 方法不返回给用户(继承)

Java连续方法调用