如何编写自定义注释和处理

时间:2014-12-26 07:28:08

标签: java annotations

我想在java中创建自定义注释。喜欢@Myannotation(name =“thrinod”,value =“Man”) 基于创建的注释,我需要处理注释并检索在运行时为该注释提供的值。

1 个答案:

答案 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());
                }
            }
        }
    }
}
相关问题