Clojure Java Interop - ссылка на поле не может быть разрешена

Я работаю над проектом clojure, в котором я хочу создать класс на Java, а затем создать экземпляр этого класса и вызвать метод из моего кода clojure.

Мой код 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)

Я скомпилировал свой класс и запустил 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)

Что я делаю неправильно? Похоже, что оператор импорта работал как экземпляр, но я не могу вызвать метод. Помощь приветствуется!

Спасибо


person David Williams    schedule 12.04.2013    source источник
comment
stackoverflow.com/questions/5424520/   -  person Sotirios Delimanolis    schedule 12.04.2013
comment
Спасибо. Извините, что не нашел этого.   -  person David Williams    schedule 13.04.2013


Ответы (1)


для статических методов используйте / вместо .

(MyClass/myMethod)
person Arthur Ulfeldt    schedule 12.04.2013