java - 从枚举常量中获取注解值

标签 java enums annotations enumerator

我有一个枚举器和一个表示枚举器描述的自定义注释:

public @interface Description {

   String name() default "";

}

枚举器:

public enum KeyIntermediaryService {
     @Description(name="Descrizione WorldCheckService")
     WORLDCHECKSERVICE,
     @Description(name="blabla")
     WORLDCHECKDOWNLOAD,
     @Description(name="")
     WORLDCHECKTERRORISM,
     // ...
}

如何从另一个类中获取枚举器描述?

最佳答案

像这样,例如获取 WORLDCHECKSERVICE 枚举值的描述​​:

Description description = KeyIntermediaryService.class
        .getField(KeyIntermediaryService.WORLDCHECKSERVICE.name())
        .getAnnotation(Description.class);

System.out.println(description.name());

不过,您必须将注释的保留策略更改为运行时:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@interface Description {
    String name() default "";
}

关于java - 从枚举常量中获取注解值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40970830/

相关文章:

java - 使用PreparedStatement::setInt null 输入会发生什么

Java:定义与类相关的方法的最佳实践

java - 获取所有枚举常量

java - OWLAPI : Get the IRI in a AnnotationAssertion

java - 让 Maven 根据属性更改 JAR 输出目录

Eclipse:构建并符合不同的 JRE 版本

c++ - 解决枚举命名问题 - Qt

C++ 二进制表达式的无效操作数

java - 使用 AspectJ 在 java 中进行声明性参数验证

java - 编译器/文本编辑器无法识别 @SuppressWarnings 注释