首页 > 编程语言 > 详细

005-java的Annotation

时间:2018-06-04 22:19:47      阅读:175      评论:0      收藏:0      [点我收藏+]

一、概述

  Annotation,JDK1.5开始提供

二、基本定义

public @interface HelloWorld {
}

1、使用@Interface定义,名称大写

2、使用@Target修饰能放到那些类属性上,不写是能修饰任何java上

3、元注解RetentionPolicy,表明注解的生命周期:

  1、SOURCE:在原文件中有效,被编译器丢弃。 
  2、CLASS:在class文件有效,可能会被虚拟机忽略。 
  3、RUNTIME:在运行时有效。

4、成员,在注解中定义【不能是类类型,对象类型等,但是Class可以】

public String name();

增加缺省值 

public String name() default "helloworld";

如果只有一个成员并且是value,在使用时可以省略,直接写值。

5、使用

@HelloWorld(name = "nihao1")
public class TestBean {
    @HelloWorld(name = "nihao2")
    private String name;

    @Override
    @HelloWorld(name = "nihao3")
    public String toString() {
     System.out.println("zhixing");
return "TestBean [name=" + this.name + "]"; } }

三、主要作用

1、针对以上不做任何处理其实没有任何用处

2、解析Annotation,然后处理问题

public class Parser {
    public void parse(Object obj, String methodName) {
        Method[] ms = obj.getClass().getMethods();
        for (Method m : ms) {
            if (m.getName().equals(methodName)) {
                if (m.isAnnotationPresent(HelloWorld.class)) {
                    HelloWorld hw = m.getAnnotation(HelloWorld.class);
                    try {
                        System.out.println("before...");
                        m.invoke(obj, null);
                        System.out.println("after...");
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}

3、Annotation处理的主要方法

技术分享图片

4、可以取代xml配置 

 

005-java的Annotation

原文:https://www.cnblogs.com/bjlhx/p/9135774.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!