gpt4 book ai didi

java - 如何创建包含未知枚举数组的 Java 注释?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:04:03 26 4
gpt4 key购买 nike

我试图做的注释看起来像这样

@Retention(value = RetentionPolicy.RUNTIME)
@Target(value = { ElementType.FIELD })
public @interface EnumParameter {
Enum<?>[] disallowedValues() default {};
}

但是,我收到以下错误“注解属性 EnumParameter.disallowedValues 的类型 Enum[] 无效;仅允许原始类型、字符串、类、注解、枚举或其一维数组”。我打算用它来指示枚举中的某些值对此字段无效。我不知道类型,因为我打算用它来补充 UI 创建,因此可能会遇到任何类型的枚举。


编辑澄清。

假设我有一个枚举,

enum Direction{
LEFT, RIGHT, BOTH;
}

我有一个字段,

Direction turnSignal;

我要说明的是转向灯不能有BOTH。

@EnumParameter(disallowedValues = {Direction.BOTH})
Direction turnSignal;

我已经意识到,到目前为止这似乎是不可能的。有没有理由不允许这样做?以这种方式使用枚举被认为是不好的风格吗?

最佳答案

这样的东西会工作吗:

@Target(value = ElementType.FIELD)
@Retention(value = RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
Class<? extends Enum<?>> enumClass();
String[] disallowedValues();
}

像这样使用

@MyAnnotation(enumClass = Direction.class, disallowedValues = {"LEFT", "RIGHT"})
Direction turnSignal;

关于java - 如何创建包含未知枚举数组的 Java 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24368555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com