Ich habe eine Eigenschaft mit einem varAnnotation auf einem var in Trait wird nicht in der Unterklasse geerbt
trait Foo {
@Id var _id: String
}
Jetzt habe ich die var
class Bar(s: String) extends Foo {
_id = s
}
Aber ich habe diesen Fehler zu initialisieren:
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 {
Der Punkt ist, dass die Annotation geerbt wird, wenn ein Merkmal verwendet wird, und ich möchte es verwenden. Ich möchte einige Merkmale mit einigen Anmerkungen zum Mapping haben und sie in einer Unterklasse verfügbar haben.
Kann jemand eine Idee, Hinweise, Lösung zur Verfügung stellen?
Edit: I forgotted die extends Foo
im Beispiel aufschreiben, wie im Kommentar zur Kenntnis genommen. Das Beispiel war also unvollständig.
Edit: Als ich die var
im Trait mit @Id var _id: String = _
definieren, dann kann ich schreiben in Bar
einfach _id = s
und die Anmerkung ordnungsgemäß geerbt. Aber jetzt ist es nicht gezwungen, dass das Feld festgelegt werden muss.
Beachten Sie, dass in dem Beispiel 'Bar' erstreckt sich nicht 'foo', aber in der Fehlermeldung sieht es aus wie es funktioniert. Ist das ein Fehler in Ihrem Beispiel? – Jesper
Ja, das Beispiel war unvollständig. – hellectronic
Ich habe den Titel geändert. Denke, das ist problemspezifischer. – hellectronic