java 注解枚举数组默认值
java annotation enum array default value
我想编写一个具有 EnumArray 字段的注释。默认值应该是枚举的所有值。此代码有效,但我不想手动指定每个枚举。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface CommonScope
{
ECountry[] countries() default {ECountry.AT, ECountry.DE};
}
我想做这样的事情:
ECountry[] countries() default ECountry.values();
有人能告诉我如何实现吗?
谢谢
这是不可能的,注释声明非常有限。您不能调用任何方法或使用属性,只能使用编译器在编译时已知的编译时常量表达式。
作为解决方法,您可以添加一个特殊的枚举值,例如 Countries.ALL_COUNTRIES
,如果这对您的应用程序有意义的话。
我想编写一个具有 EnumArray 字段的注释。默认值应该是枚举的所有值。此代码有效,但我不想手动指定每个枚举。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface CommonScope
{
ECountry[] countries() default {ECountry.AT, ECountry.DE};
}
我想做这样的事情:
ECountry[] countries() default ECountry.values();
有人能告诉我如何实现吗?
谢谢
这是不可能的,注释声明非常有限。您不能调用任何方法或使用属性,只能使用编译器在编译时已知的编译时常量表达式。
作为解决方法,您可以添加一个特殊的枚举值,例如 Countries.ALL_COUNTRIES
,如果这对您的应用程序有意义的话。