我想使用关键字符串上的注释来配置该关键字属性的初始值。例如,如何在Java注释参数中接受多种类型?
@NodeProperty(initialValue = "bar") static final String "FOO";
其他代码后处理注释,增加一键“FOO”与价值“酒吧”到特定的key-value存储,如果key“FOO”已经不存在。
我的注释声明:
@Retention(RetentionPolicy.RUNTIME)
@interface NodeProperty {
long initialValue(); // I want to accept Strings, ints, byte[], etc. here.
}
但是,我不知道initialValue
时间提前的类型。我想接受所有的基元,字符串和这些数组。
有关如何完成此任何想法?
编辑:
不幸的是,这听起来像超载注释参数目前还不可能。下面的答案包含各种解决方法。
接受一个'Object'? – talnicolas
编译器不允许这样做,因为注释参数类型必须是原始类,类,字符串,枚举或这些的数组。即使是基元的对象版本也是不允许的。 –
这不是一个类型问题,而是一个“编译时常量”问题,我想。 –