Auf der einen Seite gibt es @NonNull
, für die Oracle sagt: "Der Compiler kann Fälle ermitteln, in denen ein Codepfad einen Nullwert erhalten könnte, ohne jemals eine NullPointerException
debuggen zu müssen." Also, ich nehme an, dass es zur Kompilierungszeit verarbeitet wird.Wann werden die Java-Anmerkungen verarbeitet?
Auf der anderen Seite gibt es @Inject
, die Konstruktoren, Methoden und Felder unabhängig von ihren Zugriffsmodifizierer injiziert. Also, ich nehme an, sie werden zur Laufzeit verarbeitet.
Noch eine Sache, die mich verwirrt ist, dass die Felder zur Laufzeit injiziert werden können, obwohl sie privat sind. Bedeutet das, dass die Felder, die @Inject
haben, Setter haben müssen?
Und für die Frage nach dem Zugriff auf private Felder fand ich die Antwort [hier] (http://stackoverflow.com/questions/1196192/how-do-i-read-a-private-field-in-java). Vielen Dank. – gicig