我在 Java 接口(interface)上定义的 getHandler
方法的实现失败了,我不知道为什么。这是方法签名:
<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
我哪里做错了?
最佳答案
我认为这是因为您的实现不支持接口(interface)的约定。 H
可以是EventHandler
的任何 子类型,由aType
参数的类型决定。但是您的实现始终返回 EventHandler
的相同匿名子类型,无论作为 aType
参数传递的是什么。
我不知道正确的实现是什么,但我看不出如果不以某种方式使用 aType
参数如何实现它。
关于scala - 在 Scala 中实现 Java 接口(interface)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3614498/