1)注解的作用
①生成文档。Java最早提供的注解,如:@see @return等
②跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring2.5开始的基于注解配置,作用:减少配置文件
③在编译时进行格式检查。如:@override放在方法前,如果这个并不是覆盖超类方法,则编译时就能检查出来
2)怎么自定义注解
[修饰符列表] @interface 注解类型名{
}
public @interface MyAnnotation {
/**
* 在注解当中可以定义属性,以下这个是MyAnnotation的name属性。
* 看着像1个方法,但实际上是属性name。
* @return
*/
String name();
/*
年龄属性
*/
int age() default 25; //属性指定默认值
}
注意:①注解Annotation是一种引用数据类型。编译之后也是生成xxx。class文件
②当使用注解时,如果一个注解当中有属性,必须给属性赋值。(除非该属性有默认值)
③注解当中的属性可以是:八大基本数据类型、String、Class、枚举类型 及每一种的数组形式
3)怎么使用注解,用在什么地方
一:注解使用时的语法格式:
@注解类型名
二:注解可以出现在类上、方法上、属性上、变量上、还可以出现在注解类型上
4)JDK中提供3个内置注解
①Deprecated,只能用在方法上
作用:不鼓励使用这样的方法,通常是因为它很危险或存在更好的选择
②Override,只能用在方法上
作用:可以保证编译时Override函数的声明正确性
③SuppressWarnings 可以注释一段代码
作用:关闭特定的警告信息,比如:在使用泛型时未指定类型
5)元注解
5.1、什么是元注解
&emps;用来标注“注解类型”的注解,称为元注解
5.2、常见的元注解
①Target
②Retention
5.3、
①关于Target注解:
Target注解用来标注“被标注的注解”可以出现在那些位置上
如:
@Target(ElementType.METHOD):表示“被标注的注解"只能出现在方法上
@Target(value={CONSTRUCTOR,FIELD,METHOD,TYPE}) :表示该注解可以出现在构造方法上、字段上、方法上、类上
②关于Retention注解:
Retention注解用来标注“被标注的注解”最终保存在哪里
@Retention(RetentionPolicy.SOURCE):表示该注解只被保留在Java源文件中。
@Retention(RetentionPolicy.CLASS):表示该注解被保存在class文件中。
@Retention(RetentionPolicy.RUNTIME):表示该注解被保存在class文件中,并且可以被反射机制所读取。