2011-04-28 48 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.)))))