我正在编写一个包装器,它采用 Scala并触发与Eclipse/JFace 数据绑定框架ObservableBuffer
兼容的事件。
在 Databinding 框架中,有一个抽象ObservableList
来装饰一个普通的 Java 列表。我想重用这个基类,但即使是这个简单的代码也失败了:
val list = new java.util.ArrayList[Int]
val obsList = new ObservableList(list, null) {}
有错误:
illegal inheritance; anonymous class $anon inherits different type instances of trait Collection: java.util.Collection[E] and java.util.Collection[E]
illegal inheritance; anonymous class $anon inherits different type instances of trait Iterable: java.lang.Iterable[E] and java.lang.Iterable[E]
为什么?它与原始类型有关吗?ObservableList
implements IObservableList
,它扩展了原始类型java.util.List
。这是预期的行为,我该如何解决?