我在一個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