У меня есть трейт с переменной
trait Foo {
@Id var _id: String
}
Теперь я хочу инициализировать переменную
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 {
The Дело в том, что аннотация наследуется при использовании черты, и я хотел бы ее использовать. Я хотел бы иметь некоторые черты с некоторыми аннотациями для отображения и сделать их доступными в подклассе.
Может ли кто-нибудь предложить идею, подсказки, решение?
Редактировать:
Я забыл записать extends Foo
в примере, как указано в комментарии. Так что пример был неполным.
Редактировать:
Когда я определяю var
в Trait с помощью @Id var _id: String = _
, я могу написать в Bar
просто _id = s
и аннотация правильно наследуется. Но теперь это не принудительно, что поле должно быть установлено.