0

我正在开发一个 clojure 项目,我想在 Java 中创建一个类,然后实例化该类并从我的 clojure 代码中调用一个方法。

我的 Java 代码位于 resources/MyClass.java

public class MyClass {

    public static long myMethod() {
        long i = 1; 
        return i;
    }

}

在我的clojure代码中,我有

(import MyClass)
...
(def my-object (MyClass.))
(.myMethod my-object)

我编译了我的类并运行了 lein compile,但是当我运行我的代码时,我得到了

 Exception in thread "main" java.lang.IllegalArgumentException: No matching field found: myMethod for class MyClass
    at clojure.lang.Reflector.getInstanceField(Reflector.java:271)
    at clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:300)

我究竟做错了什么?看起来导入语句作为实例化有效,但我无法调用该方法。帮助表示赞赏!

谢谢

4

1 回答 1

2

对于静态方法,使用 a/而不是 a.

(MyClass/myMethod)
于 2013-04-12T20:38:44.033 回答