java注释不能将param作为const数组接收

时间:2017-10-26 09:53:05

标签: arrays java-annotations

首先我使用注释来接收一些参数,String和String [],例如

@Retention(RetentionPolicy.RUNTIME)  
@Target(ElementType.METHOD)  
@Documented  
public @interface RedisCacheAble {  
    String value() default "";   
    String[] names() default {};  
} 

@RedisCacheAble(value="XXOO",names = {"a","b"} )
public OrderDetailPO orderTestAble(String op) {}

然后我的经理说,值和名称必须使用const,因为其他地方可能会使用这个值,所以我改变了我的代码:

public static final String XXOO = "xxoo";
    public static final String XOARR = {"orderCode","accountId"};
    @RedisCacheAble(value=XXOO, names = XOARR )
    public OrderDetailPO orderTestAble(String op) {  //

    }
不幸的是eclipse抛出一个错误:XOARR必须初始化为一个数组,所以它的注释似乎无法识别一个const数组,任何人都知道为什么?

1 个答案:

答案 0 :(得分:0)

因为注释属性值必须是const。但即使你的阵列是最终的,它的内容也是可变的。因此,没有注释无法识别const array,没有const array