Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
wahrscheinlich simple Frage: Ich habe zwei Klassen: A und B, beides sind dataclasses.
Im "Konstruktor" der dataclass A möchte ich nun, dass für das Attribut beispiel nur Instanzen der Klasse B eingegeben werden können sind. Ich dachte, das ginge so:
danke, das war der wichtige Hinweis. Natürlich muss die Definition von B oberhalb des Codes von A erfolgen. In meinem Code war die Definition unterhalb. Da war er, mein Denkfehler.
@SinaS: Dein erster Beitrag klingt so als würdest Du glauben man könnte da nur Objekte von Typ `B` zuweisen. Das stimmt aber nicht. Typannotationen haben zur Laufzeit keinerlei Wirkung, man kann da weiterhin Werte von jedem beliebigen Typ zuweisen. Die Annotationen dienen nur der Dokumentation und können von statischen Typprüfungen ausgewertet werden. Letzteres sollte man auch dringend tun, wenn man Typannotationen schreibt, weil es sonst sehr schnell passieren kann, das man fehlerhafte Typannotationen hat, was sehr verwirrend ist. Noch schlimmer als inhaltlich falsche Kommentare oder Dokumentation, weil der Leser bei Typannotationen davon ausgeht, dass die überprüft wurden.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware