在 Scala 中,我试图生成一组通用的检查来对某些数据运行。
我的基本特征看起来像这样:
trait Check[T]
{
def complete() : Boolean = ...
def passed() : Boolean = ...
def update[T]( data : T ) : Unit
}
然后我有两个看起来有点像这样的子特征:
trait CheckFoo extends Check[Foo]{ val baz = 1 }
trait CheckBar extends Check[Bar]{ val baz = 2 }
旨在避免我在每个 Foo 和 Bar 检查中定义 baz 。
然后我有一些实际的 Foo 检查,例如
class CheckFooOne extends CheckFoo
{
def update( data : Foo ) : Unit = ...
}
但这不会编译:它告诉我 CheckFooOne 必须是抽象的,因为方法更新没有定义。
我做错了什么?我敢肯定,我错过了一些微妙之处。如果已经有类似的问题,我很抱歉,但我想不出要搜索什么,我已经不高兴地检查了类似问题的列表。