一、注解
定义——
Java注解(也称为元数据)是附加在代码中的一些元信息,用于编译和运行时进行解析和使用,起到说明、配置的功能。 可以对包、类、接口、字段、方法参数、局部变量等进行注解,注解仅仅起到辅助性的作用。
优点——
注解使得我们能够以将由编译器来测试和验证的格式,存储有关程序的额外信息。
注解可以用来生成描述符文件,甚至或是新的类定义,并且有助于减轻编写“样板”代码的负担。
通过使用注解,我们可以将这些元数据保存在Java源代码中,(并利用annotation API为自己的注解构造处理工具,注解的优点还包括更加干净易读的代码以及编译期类型检查等。
二、注解的定义
三类注解
一般常用的注解可以分为三类:
一类是Java自带的标准注解,包括@Override(标明重写某个方法)、@Deprecated(标明某个类或方法过时)和@SuppressWarnings(标明要忽略的警告),使用这些注解后编译器就会进行检查。
一类为元注解,元注解是用于定义注解的注解,包括@Retention(标明注解被保留的阶段)、@Target(标明注解使用的范围)、@Inherited(标明注解可继承)、@Documented(标明是否生成javadoc文档)。
一类为自定义注解,可以根据自己的需求定义注解。
注解的定义看起来很像接口的定义。事实上,与其他任何Java接口一样,注解也将会编译成class文件。
自定义实例@test
除了@符号以外,@Test的定义很像一个空的接口。定义注解时,会需要一些元注解(meta-annotation),如**@Target和@Retention**。
@Target用来定义你的注解将应用于什么地方(例如是一个方法或者一个域)。
@Rectetion用来定义该注解在哪一个级别可用,在源代码中(SOURCE)、类文件中(CLASS)或者运行时(RUNTIME)。
使用@test
注解的元素在使用时表现为名一值对的形式,并需要置于@UseCase声明之后的括号内。
encryptPassword0方法的注解中,并没有给出description元素的值,因此,在seCase的注解处理器分析处理这个类时会使用该元素的默认值。
注解的元素
注解的元素看起来就像接口的方法,唯一的区别是你可以为其指定默认值。
在注解中,一般都会包含一些元素以表示某些值。当分析处理注解时,程序或工具可以利用这些值。
没有元素的注解称为标记注解(marker annotation)
元注解
Java目前只内置了三种标准注解(前面介绍过),以及四种元注解。元注解专职负责注解其他的注解——