我想在java中创建自定义注释。喜欢@Myannotation(name =“thrinod”,value =“Man”) 基于创建的注释,我需要处理注释并检索在运行时为该注释提供的值。
答案 0 :(得分:2)
注释是一种元数据。要处理注释,我们需要使用Reflection API of JSE
。这是我正在处理的一个自定义注释。请参阅下面的内容。
@Documented
@Retention(value=RetentionPolicy.RUNTIME)
@Target(value={ElementType.METHOD})
public @interface SK08{
public String name() default "SK08";
}
Annotation Processing in Java Class:
=====================================
public class POJO {
private String name;
/**
* @return the name
*/
@SK08(name="Bangalore")
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
}
Processing class
==================
public class App {
public static void main(String[] args) {
POJO pojo = new POJO();
setValue(pojo);
}
private static void setValue(POJO pojo) {
for (Method method: pojo.getClass().getDeclaredMethods()) {
for (Annotation annotation : method.getDeclaredAnnotations()) {
if(annotation instanceof SK08){
System.out.println(((SK08)annotation).name());
}
}
}
}
}