1. Was ist eine doppelte Anmerkung?
Ermöglicht die mehrfache Verwendung derselben Annotation für denselben deklarierten Typ (Klasse, Eigenschaft oder Methode).
2. Ein einfaches Beispiel
Vor Java 8 gab es auch Lösungen zur Wiederverwendung von Annotationen, allerdings war die Lesbarkeit nicht sehr gut, wie zum Beispiel der folgende Code:
Kopieren Sie den Codecode wie folgt:
öffentliche @interface-Autorität {
String-Rolle();
}
öffentliche @interface-Behörden {
Authority[] value();
}
öffentliche Klasse RepeatAnnotationUseOldVersion {
@Authorities({@Authority(role="Admin"),@Authority(role="Manager")})
public void doSomeThing(){
}
}
Verwenden Sie eine andere Annotation, um wiederholte Annotationen zu speichern. Wenn Sie sie verwenden, verwenden Sie die Speicherannotation Authorities, um die wiederholten Annotationen zu erweitern.
Kopieren Sie den Codecode wie folgt:
@Repeatable(Authorities.class)
öffentliche @interface-Autorität {
String-Rolle();
}
öffentliche @interface-Behörden {
Authority[] value();
}
öffentliche Klasse RepeatAnnotationUseNewVersion {
@Authority(role="Admin")
@Authority(role="Manager")
public void doSomeThing(){ }
}
Der Unterschied besteht darin, dass beim Erstellen der wiederholten Annotationsautorität @Repeatable hinzugefügt wird, um auf die gespeicherte Annotationsautorität zu verweisen. Bei der Verwendung kann die Authority-Annotation direkt wiederverwendet werden. Anhand des obigen Beispiels können wir erkennen, dass der Ansatz in Java 8 besser für konventionelles Denken geeignet und besser lesbar ist.
3. Zusammenfassung
JEP120 hat nicht viel Inhalt, es ist eine kleine Funktion, die lediglich die Lesbarkeit des Codes verbessern soll. Diesmal hat Java 8 zwei Verbesserungen an Annotationen vorgenommen (JEP 104, JEP120). Ich glaube, dass Annotationen häufiger als zuvor verwendet werden.