1、什么是注解
Annotation(注解) 是从JDK5.0开始引入的技术
Annotation的作用:不是程序本身,可以对程序做出解释(这一点和注释没啥区别);可以被其他程序(如编译器)读取
Annotation的使用: 可以附加在package、class、method、field等上面,相当于给他们添加了额外的信息,可以通过反射机制编程实现对这些元数据的访问
2、注解分类
2.1、内置注解
- @Override 定义在java.lang.Override中,表示重写类中的一个方法声明
- @Deprecated 定义在java.lang.Deprecated中,表示不鼓励程序员使用这样的元素,通常是它很危险或者存在更好的选择
- @SuppressWarnings 定义在java,lang.SuppressWarnings中,用来抑制编译时的警告信息
2.2、元注解
元注解的作用是注解其他的注解,Java定义了4个标准的meta-annotation类型,他们用来提供其他annotation类型作说明
这些类型和他们支持的类在java.lang.annotation包中可以找到(@Target、@Retention、@Docmented、@Inherited)
- @Target 用于描述注解的使用方法
- @Retention 表示需要什么级别保存该段注解信息,用于描述注解的生命周期
- @Docmented 表示注解将包含在javadoc中
- @Inherited 说明子类可以继承父类中的注解
3、自定义注解
import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;public class Test01 {@MyAnnotation1(name = "xxx")public void Test() {}}// 自定义一个注解@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@interface MyAnnotation1 {// 注解的参数: 参数类型 + 参数名():String name() default "";int age() default 0;}
