首页 理论教育 Java服务端研发知识图谱-元注解及其应用范围

Java服务端研发知识图谱-元注解及其应用范围

时间:2023-11-22 理论教育 版权反馈
【摘要】:元注解注解的定义是基于元注解的,元注解可以理解为注解的注解。注解中用元注解修饰自定义注解的应用范围和应用级别;注解可以用的数据类型包含基本类型、String、Class、enum、Annotation以及这些类型的数组。下面的代码可以获取JavaAnnotation类的注解情况并输出。运行结果如下:getName function ID is 1 and url is localhost:8080/JavaAn/getName for获取名字setName function ID is 2 and url is localhost:8080/JavaAn/setName for设置名字main方法通过解析,输出了带自定义注解的两个方法的名字,还有一个URL地址,并且说明了用途。

Java服务端研发知识图谱-元注解及其应用范围

注解是丰富代码信息的一种方法,通过注解可以更加了解代码,并且通过注解解析和使用,能够方便管理代码和让编程更加简单。

(1)Java内置了三种注解,分别是:

■@Override:表示当前方法覆盖基类的方法,如果基类不存在此方法,则编译器会报错(如果不使用注解,则编译器不会检查到)。

■@Deprecated:表示弃用的方法,如果其他类使用了这个注解标注的方法,编译器会生成警告。

■@SuppressWarnings:关闭警告的注解,使用此注解后编译器会关闭相应类型的警告。

(2)元注解

注解的定义是基于元注解的,元注解可以理解为注解的注解。通过元注解来修饰自定义注解,例如圈定使用范围或应用阶段等,见表1-8。

1-8 元注解

978-7-111-61011-3-Part01-112.jpg

(3)自定义注解

自定义注解的写法和接口很像,只是在名字前面加上@即可。注解中用元注解修饰自定义注解的应用范围和应用级别;注解可以用的数据类型包含基本类型、String、Class、enum、Annotation以及这些类型的数组。注解中的方法不能有参数,但是可以有默认值。

下面定义一个自定义注解,这个注解是用来辅助说明方法是做什么的,以及它对外暴露的接口是什么。

978-7-111-61011-3-Part01-113.jpg(www.xing528.com)

自定义注解通过@Target设定,此注解用于方法;通过@Retention设定注解有效期至运行期。注解的字段包含方法的描述和对外提供的URL路径。

(4)注解解析

如上例自定义注解,这个注解写完了有什么用呢?用于给方法做补充说明,难道仅仅在文档上有用吗?下面给一个类加上自定义注解,然后再通过一个解析的方法把注解解析出来,看看它的用处有多大。

978-7-111-61011-3-Part01-114.jpg

上面代码建立了一个类,这个类有两个方法,对每个方法都写了注解,标明了这个方法是做什么的,以及一个路径。下面的代码可以获取JavaAnnotation类的注解情况并输出。

978-7-111-61011-3-Part01-115.jpg

运行结果如下:

getName function ID is 1 and url is localhost:8080/JavaAn/getName for获取名字

setName function ID is 2 and url is localhost:8080/JavaAn/setName for设置名字

main方法通过解析,输出了带自定义注解的两个方法的名字,还有一个URL地址,并且说明了用途。某些Web框架其实就是用这种方法把类中方法和访问地址关联起来,这样来自网络的调用就可以找到对应的方法,从而实现程序对外提供的HTTP服务。

注解的应用场景很多,例如下一节要讲的JUnit和本书后面的很多框架都用到了注解的内容。本节讲的是基本的注解使用原理,了解原理之后对以后章节的理解会更加轻松。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈