2011-04-28 37 views
4

我想寫用Clojure以下,但我無法弄清楚了我的生活:如何在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」確實存在於界面中。誰能幫忙?

回答

3

我沒有做過廣泛的Java互操作使用Clojure所以這可能是錯的,但如何

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