我是scala的新手。每当地图修改时,我都希望得到通知。我认为可以使用可观察的地图来完成。
我正在尝试定义如下对象
var myObj = new Map[UUID, MyType] with ObservableMap[UUID,MyType]
但是它不编译。.>
error: object creation impossible, since: method iterator in trait MapLike of type => Iterator[(java.util.UUID, MyType)] is not defined method get in trait MapLike of type (key: java.util.UUID)Option[MyType] is not defined method -= in trait ObservableMap of type (key: java.util.UUID)this.type is marked `abstract' and `override', but no concrete implementation could be found in a base class method += in trait ObservableMap of type (kv: (java.util.UUID, MyType))this.type is marked `abstract' and `override', but no concrete implementation could be found in a base class
为什么会这样?您如何实例化一个ObservableMap?
我是scala的新手。每当地图修改时,我都希望得到通知。我认为可以使用可观察的地图来完成。我试图定义一个如下所示的对象var myObj = new Map [UUID,MyType] ...
特征ObseravableMap中的某些方法是抽象的,这意味着您必须提供它们的实现。这是API的link。
您需要将ObservableMap
与具体的地图类型混合使用。
Map
是一个具有apply方法的对象,该方法创建一个新的地图实例,这就是为什么您可以执行val mymap = Map()
之类的原因。但是您使用的地图是特征,它具有一些需要实现的抽象方法。由于Map
和ObservableMap
都具有抽象元素,所以它不起作用。
这是特质,意欲用作mixin。像: