【问题标题】:java annotation can not receive param as const arrayjava注解不能接收参数作为常量数组
【发布时间】:2017-10-26 09:53:05
【问题描述】:

首先我使用注解来接收一些参数,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 must initial as an Array,所以似乎注解无法识别 const 数组,有人知道为什么吗?

【问题讨论】:

    标签: arrays java-annotations


    【解决方案1】:

    因为注解属性值必须是const。但即使你的数组​​是最终的,它的内容也是可变的。所以不是注解不能识别const array,没有const array

    【讨论】:

      猜你喜欢
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 2018-05-13
      相关资源
      最近更新 更多