黑马程序员---注解与反射的调用以及添加各种属性

来源:互联网 发布:怎样安装电脑软件 编辑:程序博客网 时间:2024/05/16 19:13

       ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

       在日常编写编写代码中,我们都会用到注解。现在就来看一下注解在变成中的通途。

       注解:就是一种标记,告诉开发工具或是编译器。用于作为传递某种信息作用,一个注解就是一个类。

       首先了解一下最基本的三个注解:

            @SuppressWarnings”deprecation”):压缩警告注解,使用注解以后编译警告取消。通过代码来看一下:

 

            @Deprecated:用于对过时的方法进行注解。

 

        用@Deprecated注释的程序元素,不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择。在使用不被赞成的程序元素或在不被赞成的代码中执行重写时,编译器会发出警告。

         @Overload:用于表示子类覆盖父类的方法,必须是覆盖方法。如果方法利用此注释类型进行注解但没有重写超类方法,则编译器会生成一条错误消息。

 

        总结:

       注解:相当于一种标记,加上了注释就等于打上了某种标记;如果没有加上,就表示没有打上某种标记。JAVA编译器,开发工具和其他程序可以用反射来了解你的类以及各种元素上有无任何标记,有什么标记,就去做相应的事情。

       标记可以打在包,类,字段,方法和方法的参数上以及局部变量上。

       下面就来看看注解与反射的调用:

         1.定义一个最简单的注解:

 

         2.将定义的注解可加载到到某个类上:

 

         3.用反射进行测试:

 

       但是在运行是却发现没有任何结果。那是为什么呢?这就引出了下面要看到的知识点:元注解(@Retention)。

        @Retention:元注解。

       并有三种取值:1. RetentionPolicy.SOURCE:表示JAVA源文件,换句话说就是用在在编译阶段中;2. RetentionPolicy.CLASS:表示class文件,就是用于保存文件中;3. RetentionPolicy.RUNTIME:表示内存中的字节码,就是用于内蕴运行阶段。

       这三种元注解的取值表示:注解保留的到什么阶段后取消,也就是它们的生命周期。

       那么现在我再返回解决刚才的问题,首先我先对定义的注解再注解:

 

       那么现在再运行一遍,看看结果:

 

       现在就出现了结果。

       有了元注解的知识后,我们回过头再看一下,最开始的三个基本注解分别是属于那个阶段的:

         @Overload:是属于编译阶段的注解;@Overload:也是属于编译时期的注解;@Deprecated:是属于运行阶段的注解。

       说完这三个元注解之后,再提一个很小的知识点:@Target注解。它表示元注解用于什么那个成分上:类,方法等。在通过代码进行示范:

 

        最后一个比较重要的知识点:为注解添加各种属性。

 

       通过代码直观看到了添加属性的过程与现实的结果。但是在添加属性时,还要注意以下几点:

         1.再添加value属性时,如果没有其它属性或是其它属性都是用默认值的时候,在进行注解时,不用写value=”xxx”,可以直接写具体内容;

        2.数组属性,面对数组属性时,可以添加具体元素,但是无法打印显示int类型数组的具体元素。在这里int类型数组被看成一个整体,无法获取其中具体元素,但可以获取长度属性。

0 0
原创粉丝点击