2013-04-12 38 views
0

我正在创建一个clojure项目,我要在Java中创建一个类,然后实例化该类并从我的clojure代码中调用一个方法。Clojure Java Interop - 对字段的引用...无法解析

我的Java代码位于资源/ MyClass.java

public class MyClass { 

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

} 

在我的Clojure代码,我有

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

我编我的课就跑雷音编译,但是当我运行代码我得到

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) 

我做错了什么?它看起来像导入语句,作为实例,但我不能调用该方法。帮助表示赞赏!

感谢

+2

http://stackoverflow.com/questions/5424520/how-can-i-call-a-java-static -method-in-clojure –

+0

谢谢。抱歉没有找到那个。 –

回答

2

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

(MyClass/myMethod)