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、自定义注解

  1. import java.lang.annotation.ElementType;
  2. import java.lang.annotation.Retention;
  3. import java.lang.annotation.RetentionPolicy;
  4. import java.lang.annotation.Target;
  5. public class Test01 {
  6. @MyAnnotation1(name = "xxx")
  7. public void Test() {
  8. }
  9. }
  10. // 自定义一个注解
  11. @Target({ElementType.TYPE, ElementType.METHOD})
  12. @Retention(RetentionPolicy.RUNTIME)
  13. @interface MyAnnotation1 {
  14. // 注解的参数: 参数类型 + 参数名():
  15. String name() default "";
  16. int age() default 0;
  17. }