我的疑问就是这个。说,我有一个自定义注释如下:
//rest of the code left out for the sake of brevity
interface @Name{
String myName();
}
现在,在使用此注释的类,字段或方法中,我希望将值传递给" myName"来自属性文件,如下所示:
@Name(myName="${read.my.name}")
public void something(){}
有人可以建议我如何阅读传递给' myName'在我的注释处理器中从属性文件?我已经阅读了一些关于占位符的使用,然后使用@Value,但我不确定我是否可以/应该使用这种方法,一个服务类,我只想要一个标注有这个注释的注释字段或方法?任何指导都将非常感谢。
谢谢和问候!
答案 0 :(得分:3)
这是我的方法级注释:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Name {
public String myName();
}
这是一个声明注释的虚拟类:
public class Z {
@Name(myName = "George")
public void something() {
}
}
以下是获取价值的方法:
final Method method = Z.class.getMethod("something");
if (method.isAnnotationPresent(Name.class)) {
final Annotation annotation = method.getAnnotation(Name.class);
final Name name = (Name) annotation;
System.out.println(name.myName()); // Prints George
}