注解是丰富代码信息的一种方法,通过注解可以更加了解代码,并且通过注解解析和使用,能够方便管理代码和让编程更加简单。
(1)Java内置了三种注解,分别是:
■@Override:表示当前方法覆盖基类的方法,如果基类不存在此方法,则编译器会报错(如果不使用注解,则编译器不会检查到)。
■@Deprecated:表示弃用的方法,如果其他类使用了这个注解标注的方法,编译器会生成警告。
■@SuppressWarnings:关闭警告的注解,使用此注解后编译器会关闭相应类型的警告。
(2)元注解
注解的定义是基于元注解的,元注解可以理解为注解的注解。通过元注解来修饰自定义注解,例如圈定使用范围或应用阶段等,见表1-8。
表1-8 元注解
(3)自定义注解
自定义注解的写法和接口很像,只是在名字前面加上@即可。注解中用元注解修饰自定义注解的应用范围和应用级别;注解可以用的数据类型包含基本类型、String、Class、enum、Annotation以及这些类型的数组。注解中的方法不能有参数,但是可以有默认值。
下面定义一个自定义注解,这个注解是用来辅助说明方法是做什么的,以及它对外暴露的接口是什么。
(www.xing528.com)
自定义注解通过@Target设定,此注解用于方法;通过@Retention设定注解有效期至运行期。注解的字段包含方法的描述和对外提供的URL路径。
(4)注解解析
如上例自定义注解,这个注解写完了有什么用呢?用于给方法做补充说明,难道仅仅在文档上有用吗?下面给一个类加上自定义注解,然后再通过一个解析的方法把注解解析出来,看看它的用处有多大。
上面代码建立了一个类,这个类有两个方法,对每个方法都写了注解,标明了这个方法是做什么的,以及一个路径。下面的代码可以获取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地址,并且说明了用途。某些Web框架其实就是用这种方法把类中方法和访问地址关联起来,这样来自网络的调用就可以找到对应的方法,从而实现程序对外提供的HTTP服务。
注解的应用场景很多,例如下一节要讲的JUnit和本书后面的很多框架都用到了注解的内容。本节讲的是基本的注解使用原理,了解原理之后对以后章节的理解会更加轻松。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。