我在一个Java接口上定义的getHandler
方法的实现失败,我不知道为什么。下面是该方法的签名:在Scala中实现Java接口方法
<H extends EventHandler> H getHandler(Type<H> type, int index);
我在Scala实现是:
def getHandler[H <: com.google.gwt.event.shared.EventHandler]
(aType: Type[H], index: Int): H
= new com.google.gwt.event.shared.EventHandler() {}
...但编译器给了我这个消息:
type mismatch;
found: java.lang.Object with com.google.gwt.event.shared.EventHandler
required: H
我在哪里犯了错误?
...甚至更简洁: 新的com.google.gwt.event.shared.EventHandler(){} .asInstanceOf [H] – David 2010-09-01 03:10:12
它可能会使它编译,但它是一个可怕的建议。代码不正确,如果以这种方式实施,将会导致问题。 – 2010-09-01 14:17:51
是的,我同意,作为建议它是可怕的。我查看了http://www.docjar.com/html/api/com/google/gwt/event/shared/HandlerManager.java.html,并决定我只是回答为什么它不能编译。我感到不好,这是公认的答案。 – huynhjl 2010-09-02 01:18:49