yazz.com
yazz.com

Reputation: 58786

How to write the following class in Clojure?

I want to write the following in Clojure, but I can't figure it out for the life of me:

new TouchCommand() {

    @Override
    public void itemTouched(TouchMenuItem selectedItem) {
    }

I tried:

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

but it returns:

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

even though "itemTouched" does exist in the interface. Can anyone help?

Upvotes: 4

Views: 262

Answers (1)

okonomichiyaki
okonomichiyaki

Reputation: 8485

I haven't done extensive Java interop with Clojure so this might be wrong, but how about

(proxy [TouchCommand] []
  (itemTouched [selectedItem]
               (.. (getParent)
                   (navigateTo
                     (UiBasics.)))))

Upvotes: 3

Related Questions