我有以下特点:
sealed trait CommandLike[T, Repr <: CommandLike[T,_]] extends CanBeEnabled[Repr]{
def name: String
def execute: T => Any
}
trait CanBeEnabled[Repr] {
def enabled: Boolean
def isEnabled = enabled
def isDisabled = enabled
def disable : Repr = setEnabled(enabled = false)
def enable : Repr = setEnabled(enabled = true)
def setEnabled(enabled: Boolean) : Repr
}
现在我想要一个命令列表:
val cmds = List[CommandLike[Unit, _]]()
这很烦人,所以我宁愿隐藏Repr 类型参数:
val cmds = List[Command[Unit]]()
所以我需要隐藏Repr的Command trait:
trait Command[T] extends CommandLike[T, _ <: Command[T]]
但这给了我:
非法循环引用涉及 trait Command trait Command[T] extends CommandLike[T, _ <: Command[T]]
有任何想法吗?^