scala.collection.mutable.ObservableMapを使用しようとしています。ScalaのObservableMapの使用
from scala-user以下のスニペットを取得してREPLにコピーしました。
電子メールには修正済みとマークされたチケット2704が記載されていますが、このスニペットは機能しません。
構文が変更されているか、サブスクライブが誤って呼び出されていますか?
これは、ここでの問題は、マイマップは、パブの種類を洗練されていないということですので、マイマップはSubscriber[Message[(Int, Int)] with Undoable, ObservableMap[Int, Int]]
を望んでいるし、あなたの加入者タイプがSubscriber[Message[(Int, Int)] with Undoable, MyMap]
ある2.9.0.final
scala> import scala.collection.mutable._
import scala.collection.mutable._
scala> import scala.collection.script._
import scala.collection.script._
scala> class MyMap extends HashMap[Int,Int] with ObservableMap[Int,Int,MyMap]
<console>:13: error: wrong number of type arguments for scala.collection.mutable.ObservableMap, should be 2
class MyMap extends HashMap[Int,Int] with ObservableMap[Int,Int,MyMap]
^
scala> class MyMap extends HashMap[Int,Int] with ObservableMap[Int,Int]
defined class MyMap
scala> val map = new MyMap
map: MyMap = Map()
scala> class MySub extends Subscriber[Message[(Int,Int)],MyMap] {
| def notify(pub: MyMap, evt: Message[(Int,Int)]) { println(evt) }
| }
defined class MySub
scala> val sub = new MySub
sub: MySub = [email protected]
scala> map.subscribe(sub)
<console>:18: error: type mismatch;
found : MySub
required: map.Sub
map.subscribe(sub)