我有一个var
的特征trait Foo {
@Id var _id: String
}
现在我想初始化var
class Bar(s: String) extends Foo {
_id = s
}
但是我收到了这个错误:
error: class Bar needs to be abstract, since variable _id in class Foo of type String
is not defined (Note that variables need to be initialized to be defined) class Bar(s: String) extends Foo {
关键是当使用特征时我会继承注释,我想使用它。 我想有一些带有一些注释注释的特性,并让它们在子类中可用。
有人可以提供想法,提示,解决方案吗?
修改
我忘了写下评论中提到的示例中的extends Foo
。所以这个例子是不完整的。
修改
当我使用var
在特征中定义@Id var _id: String = _
时,我可以简单地Bar
写_id = s
并正确地继承注释。但现在不必强制必须设置字段。
答案 0 :(得分:6)
_id
是您的特质var
中的抽象Foo
。在课程var
中将Bar
放在前面:
class Bar(s: String) extends Foo {
var _id = s
}