如何在没有硬编码的情况下将类名分配给java中的anotation属性

时间:2015-12-04 12:02:09

标签: java

我正在尝试写类似于

的内容
@Property(name="className",value=MyClazz.class.getName())
class MyClazz{
}

但是编译器抱怨道:

  

注释属性Property.value的值必须是常量   表达

有解决方法吗?或者我应该只对类名进行硬编码。

1 个答案:

答案 0 :(得分:2)

使用Class值类型而不是String将支持以下用法:

@MyQualifier(String.class)
String myMethod() {
    return "hello";
}

您的注释类型为:

...
@Retention(RUNTIME)
public @interface MyQualifier {
    Class value();
}