如何在Java Annotation中设置Integer数组

时间:2018-04-02 10:21:34

标签: java interface java-8 annotations

我想在注释界面中输入一个整数数组作为输入,就像这样。

@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface CheckAccess {

    AccessType accessType() default AccessType.ALL;
    Integer[] permissions();

}

这样在提供输入时,我可以使用一些具有整数值的常量。像这样: -

@CheckAccess(permissions={CAN_READ, CAN_WRITE})

CAN_READ = 1;
CAN_WRITE=2;

我怎样才能做到这一点?因为当我设置Integer []时会抛出编译错误但对String []工作正常。

1 个答案:

答案 0 :(得分:3)

Java编译器(至少是我的Eclipse编译器)给出了以下错误消息:

  

注释属性Integer[]的类型permissions无效;
  只允许原始类型,StringClass,注释,枚举   或其一维阵列

因此,您需要将Integer[]替换为int[],如下所示:

int[] permissions() default 0;