Thomas Darimont
Erfahrenes Mitglied
Hallo,
in Java ist es möglich Annotations (mit Element Target: Type) an sich selbst zu annotieren. Dies kann u.a. dann nützlich sein, wenn man von einer Annotation die default Werte benötigt.
Schaut mal hier:
Ausgabe:
Gruß Tom
in Java ist es möglich Annotations (mit Element Target: Type) an sich selbst zu annotieren. Dies kann u.a. dann nützlich sein, wenn man von einer Annotation die default Werte benötigt.
Schaut mal hier:
Java:
package de.tutorials.training;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Author: tom
*/
public class AnnotationHackExample {
public static void main(String[] args) {
C0 c0 = new C0();
C1 c1 = new C1();
System.out.println(getAnnoValue(c0));
System.out.println(getAnnoValue(c1));
}
public static String getAnnoValue(Object o) {
Class<?> c = o.getClass();
if (!c.isAnnotationPresent(Anno.class)) {
c = Anno.class;
}
Anno anno = c.getDeclaredAnnotation(Anno.class);
return anno.value();
}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Anno
@interface Anno {
String value() default "default";
}
@Anno("custom")
static class C0 {
}
static class C1 {
}
}
Ausgabe:
Code:
custom
default
Gruß Tom