Как написать следующий класс в Clojure? - PullRequest
4 голосов
/ 28 апреля 2011

Я хочу написать следующее в Clojure, но я не могу понять это для своей жизни:

new TouchCommand() {

    @Override
    public void itemTouched(TouchMenuItem selectedItem) {
    }

Я пытался:

(reify com.vaadin.touchkit.TouchMenu$TouchCommand 
  (itemTouched [^com.vaadin.touchkit.TouchMenu$TouchMenuItem item]))

, но он возвращается:

java.lang.IllegalArgumentException: Can't define method not in interfaces: itemTouched 

, хотя "itemTouched" существует в интерфейсе.Кто-нибудь может помочь?

1 Ответ

3 голосов
/ 28 апреля 2011

Я не делал обширного взаимодействия Java с Clojure, так что это может быть неправильно, но как насчет

(proxy [TouchCommand] []
  (itemTouched [selectedItem]
               (.. (getParent)
                   (navigateTo
                     (UiBasics.)))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...