TestAnnotation.java
public @interface TestAnnotation {
String param1();
String param2() default "defaultValue";
}
UserAnnotation.java
@TestAnnotation (param1="30", param2="100")
public UserAnnotation() {}
Referenzklasse
Class<?> c = UserAnnotation.class;
for (Annotation a : c.getDeclaredAnnotations()) {
System.out.println(a);
}
Konsolenausgabe
@com.example.demo.com.annotation.TestAnnotation(param2=100, param1=30)
TestAnnotation
@Documented
@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface TestAnnotation{}
@Documented
@Target
Art | Erläuterung |
---|---|
TYPE | Klassenschnittstelle, Aufzählung, Anmerkung |
FIELD | Feld |
METHOD | Methode |
ANNOTATION_TYPE | Kommentierte Typdeklaration |
@Retantion ――Wie weit werden die Anmerkungsinformationen verwendet?
Art | Erläuterung |
---|---|
SOURCE | Es wird nur in der Quelle beibehalten und beim Erstellen der Klassendatei gelöscht. |
CLASS | Es kann in einer Klassendatei beibehalten werden, kann jedoch bei der Ausführung der Anwendung nicht referenziert werden. |
RUNTIME | Kann auch verwendet werden, wenn die Anwendung ausgeführt wird. Dies ist erforderlich, wenn Sie in Reflexion auf die Anmerkung verweisen möchten. |
@Inherited
@Dokumentiertes Verhalten https://qiita.com/opengl-8080/items/1cc996d9e8bb5c811567
Was ist @ meta-annotation? https://www.techscore.com/tech/Java/JavaSE/JavaLanguage/7-3/
Recommended Posts