Clojure Java Interop - 对字段的引用...无法解析

时间:2013-04-12 18:57:56

标签: java clojure interop leiningen clojure-java-interop

我正在开发一个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编译,但是当我运行我的代码时,我得到了

 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)

我做错了什么?它看起来像import实例,因为实例化,但我无法调用该方法。感谢帮助!

由于

1 个答案:

答案 0 :(得分:2)

静态方法的

使用/而不是.

(MyClass/myMethod)