Аннотация к var в Trait не наследуется в подклассе

У меня есть трейт с переменной

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и аннотация правильно наследуется. Но теперь это не принудительно, что поле должно быть установлено.

0
задан hellectronic 6 April 2012 в 09:35
поделиться