欢迎来到天天文库
浏览记录
ID:30780340
大小:54.00 KB
页数:5页
时间:2019-01-03
《java注解教程及自定义注解-编程开发技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Java注解教程及自定义注解-编程开发技术Java注解教程及自定义注解译文出处:赵亮原文出处:PankajKumarJava注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容。在这个教程当中,我们将学习J3V3的注解,如何定制注解,注解的使用以及如何通过反射解析注解。Javal.5引入了注解,当前许多java框架中大量使用注解,如Hibernate、Jersey、Springe注解作为程序的元数据嵌入到程序当中。注解可以被一些解析工具或者是编译工具进行解析。我们也可以声明注解在编译过程或执行时产生作用。在使用注解Z前,程序源数据只是通过jewel注释和ja
2、vadoc,但是注解提供的功能要远远超过这些。注解不仅包含了元数据,它还可以作用于程序运行过程屮、注解解释器可以通过注解决定程序的执行顺序。例如,在Jerseywebservice我们为方法添加URI字符串的形式的**PATH**注解,那么在程序运行过程屮jerser解释程序将决定该方法去调用所给的URTo创建Java自定义注解创建自定义注解和创建一个接口相似,但是注解的interface关键字需要以@符号开头。我们可以为注解声明方法。我们先來看看注解的例了,然后我们将讨论他的一些特性。packagecom.journaldev.annotations;importja
3、va・lang・annotation.Documented;importjava.lang.annotation.ElementType;importjava.lang,armotation.Inherited;importjava.lang,annotation.Retention;importjava・lang.otation.RotentionPolicy;importjava・lang・annotation.Target;@Documented@Target(ElementType.METHOD)©Inherited©Retention(RetentionPol
4、icy.RUNTIME)public©interfaceMethodinfo{Stringauthor()default'Pankaj';Stringdate();intrevision()default1;Stringcomments();•注解方法不能带有参数;•注解方法返回值类型限定为:棊木类型、String、Enums、Annotation或者是这些类型的数组;•?注解方法可以有默认值;•?注解本身能够包含元注解,元注解被用來注解其它注解。这里冇四种类型的元注解:1.?@Documented?指明拥有这个注解的元素可以被javadoc此类的工具文档化。这种类型应
5、该用于注解那些影响客户使用带注释的元素声明的类型。如果一种声明使用Documented进行注解,这种类型的注解被作为被标注的程序成员的公共API。2.?@Target——指明该类型的注解可以注解的程序元索的范围。该元注解的取值可以为TYPE,METHOD,CONSTRUCTOR,FIELD等。如果Target元注解没有出现,那么定义的注解可以应用于程序的任何元素。3.?@Inherited——指明该注解类型被自动继承。如果用户在当前类中查询这个元注解类型并且当而类的声明中不包含这个元注解类型,那么也将口动查询当丽类的父类是否存在Inherited元注解,这个动作将被重复
6、执行知道这个标注类型被找到,或者是查询到顶层的父类。4.©Retention指明了该Annotation被保留的吋间长短。RetentionPolicy取值为SOURCE,CLASS,RUNTIME。Java内建注解Java捉供了三种内建注解。1.?@0verride——当我们想要复写父类中的方法时,我们需要使用该注解去告知编译器我们想要复写这个方法。这样一来当父类屮的方法移除或者发生更改吋编译器将提示错误信息。2.?@Deprecated当我们希望编译器知道某一方法不建议使用时,我们应该使用这个注解。Java在javadoc屮推荐使用该注解,我们应该提供为什么该方法不
7、推荐使用以及替代的方法。3.?@SuppressWarnings——这个仅仅是告诉编译器忽略特定的警告信息,例如在泛型中使用原生数据类型。它的保留策略是SOURCE(译者注:在源文件中冇效)并且被编译器丢弃。我们来看一个java内建注解的例子参照上边捉到的自定义注解。packagecom.journaldev.annotations;importjava.io.FileNotFoundException;importjava.util.ArrayList;importjava,util.List;publicclassAnnotation
此文档下载收益归作者所有