我有一个枚举器和一个自定义注释,代表了枚举器的描述:
public @interface Description {
String name() default "";
}
枚举:
public enum KeyIntermediaryService {
@Description(name="Descrizione WorldCheckService")
WORLDCHECKSERVICE,
@Description(name="blabla")
WORLDCHECKDOWNLOAD,
@Description(name="")
WORLDCHECKTERRORISM,
// ...
}
如何从另一个类中获取枚举器描述?
答案 0 :(得分:1)
点击链接Is it possible to read the value of a annotation in java?以生成以下代码 -
public static void main(String[] args) {
for (Field field : KeyIntermediaryService.class.getFields()) {
Description description = field.getAnnotation(Description.class);
System.out.println(description.name());
}
}
雅但是这段代码会产生一个NPE,除非@Robby在他的回答中指出你需要更改注释以@Retention(RetentionPolicy.RUNTIME)
标记为Description
。
在此答案中陈述了这一点的原因 - How do different retention policies affect my annotations?