Java 注解中使用枚举属性,动态从代码获取枚举值传入注解中
时间: 2024-05-12 09:18:16 浏览: 230
可以使用以下方式将枚举值传入注解中:
1. 定义一个枚举类,例如:
```
public enum Color {
RED, GREEN, BLUE;
}
```
2. 在注解中定义一个枚举类型的属性,例如:
```
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface MyAnnotation {
Color color() default Color.RED;
}
```
3. 在使用注解的类中,动态获取枚举值并传入注解中,例如:
```
public class MyClass {
public static void main(String[] args) {
Color color = Color.BLUE;
MyAnnotation annotation = MyClass.class.getAnnotation(MyAnnotation.class);
if (annotation != null) {
System.out.println("Color from annotation: " + annotation.color());
}
else {
// Use default value
System.out.println("Default color: " + color);
}
}
@MyAnnotation(color = Color.GREEN)
public static class MyAnnotatedClass {
// ...
}
}
```
在上面的例子中,我们获取了 MyAnnotatedClass 类上的 MyAnnotation 注解,并从注解中获取了枚举类型的属性值。如果注解中没有设置该属性,就使用默认值(这里默认是 Color.RED)。
阅读全文