【发布时间】:2011-08-09 04:30:39
【问题描述】:
使用 import scala.collection.mutable.{Publisher, Subscriber} 我正在尝试实现一个订阅事件和发布事件的类。例如,此类可能会接收原始数据,对其进行操作,然后将结果发布给其他订阅者。
扩展订阅者的基本类:
scala> class Sub[Evt, Pub]() extends Subscriber[Evt, Pub]{
def notify(pub: Pub, evt: Evt){
}
}
defined class Sub
扩展 Publisher 的基本类:
scala> class Pub[Evt]() extends Publisher[Evt]{}
defined class Pub
现在,我想将两者结合起来:
scala> class PubSub[Evt, Pub] extends Subscriber[Evt, Pub] with Publisher[Evt]{
def notify(pub: Pub, evt: Evt){
}
}
<console>:26: error: class PubSub needs to be abstract, since method notify in
trait Subscriber of type (pub: Pub,event: Evt)Unit is not defined class
PubSub[Evt,Pub] extends Subscriber[Evt, Pub] with Publisher[Evt]{
notify 方法已定义,因此该错误可能具有误导性。
我不确定如何为 PubSub 类定义类型参数,这可能是问题的一部分。
【问题讨论】:
标签: scala scala-2.8 publish-subscribe