概述

  • 属于引用数据类型

编译之后也是生成 xxx.class文件

语法格式:
  1. 修饰符列表 @interface 注解类名{
  2. }

使用

  • 注解使用的语法格式: @注解类型名
  • 可以出现在 类上,方法上,变量上,注解类型上等

    JDK内置的注解
  • @Override

    • 出现在方法上,供编译器检查是否为重写的方法
    • 并不是必须的
  • @Depercated
    • 标注这个已经过时了, 有一个删除线
    • 向其他程序员告诉已过时,有更好的解决方案

元注解

如果一个注解修饰一个注解类型, 那么他就叫元注解
常见的元注解

  • Target
    • 一个元注解,用来标注“注解类型”的注解
    • 标注:被标注的注解可以出现在哪些位置上
    • @Target({ElementType.METHOD}) : 表示被标注的注解只能出现在方法上
  • Retention
    • 表示该注解最终保存到哪(保持性策略)
    • @Retention(RetentionPolicy.SOURCE) 表示该注解最后只会保存在java源文件中
    • @Retention(RetentionPolicy.CLASS) 保留在class文件中
    • @Retention(RetentionPolicy.RUNTIME) 保留在class文件中 并且可以被反射读取

在注解里面创建一个属性
  1. public @interface MyAnnotation{
  2. String name(); //属性 看着很奇怪,但就是这样
  3. String color() default="默认"; //设置默认值
  4. }

当使用这个注解的时候,需要这样使用(指定属性值)

  1. @MyAnnotation(属性名=属性值,属性名=属性值)
  2. public static void doSome(){}

如果属性名是value 是 String/int/… value()
那么在用这个注解的时候 直接 @MyAnnotation(“zhangsan”)
value可以省略(只有一个value属性)

类型

byte short int long float double boolean char String Class 枚举

注解在开发时的作用
  • 对程序的一种注释,一种标记