Ich habe eine solche Schnittstelle:
%Vor%und ich implementiere das so:
%Vor%Wenn es möglich ist, die Annotation des Elternteils zu erreichen, möchte ich den Weg dazu kennen lernen.
Jede Hilfe oder Idee wird geschätzt.
Sie können Spring AnnotationUtils.findAnnotation , um Anmerkungen von Schnittstellen zu lesen.
Beispiel:
Schnittstelle I.java
Implementierende Klasse A.java
Es erfordert offensichtlich, Spring-Framework-Klassen in Ihr Projekt aufzunehmen (und zu importieren).
Sie können keine Anmerkungen erben.
Aber ein Framework, das eine Annotation verwendet, kann prüfen, ob eine Annotation in der Superklasse vorhanden ist
Es gibt keinen direkten Weg, um es zu bekommen. Wenn Sie wirklich benötigen, müssen Sie getInterfaces()
manuell durchlaufen, um festzustellen, ob eine implementierte Schnittstelle die Annotation enthält. Wenn Sie nach (eventuell abstrakten) Oberklassen suchen möchten und die Annotation nicht @Inherited
ist, können Sie die Superklassenkette erneut durchlaufen, bis Sie Object
(*).
Aber Vorsicht, wie folgende Post States zeigen, gibt es gute Gründe dafür, dass sie nicht direkt in Java implementiert werden: Warum vererben Java-Klassen keine Anmerkungen von implementierten Schnittstellen?
(*) Wenn die Annotation @Inherited
ist, wird automatisch nach Superklassen gesucht, aber nicht nach Interfaces.
Tags und Links java