作用

  • 可以对程序作出解释,但又不是程序的部分,这一点跟注释差不多
  • 可以被程序读取,注解信息处理流程是注解和注释的区别

一些常见的注解

  • @Override
    定义在java.lang.Override里,该注解只修饰方法,表示这个方法是重写了超类的方法
  • @Deprecated
    定义在java.lang.Deprecated里,可修饰方法,属性,类,表示不建议使用这个元素,使用时会出现划线
  • @SuppressWarnings()
    定义在java.lang.SuppressWarnings里,用来抑制编译时的警告信息,不过要往里加一个参数才能使用,比如”all”等

自定义的注解

  • 元注解是为注解做的注解,如@Target,@Retention,@Documented,@Inherited,位于java,lang,annotation

    • @Target,用于描述注解的使用范围

      1
      @Target(value = Element.TYPE)
    • @Retention,表示需要什么级别保存该注释,描述注解的生命周期

      1
      2
      3
      @Retention(RetentionPolicy.RUNTIME)				// 在运行时有效,可以被反射机制读取
      @Retention(RetentionPolicy.SOURCE) //在class文件中有效
      @Retention(RetentionPolicy.RUNTIME) // 在源文件中有效
  • 使用@interface自定义注解,自动继承了java.lang.annotation接口,其中每一个方法就是声明了一个配置参数,如果只有一个参数一般命名为”value“

    1
    2
    3
    public @interface Testannotation{
    String name() default ""; //这里表示参数默认值为”“,如果使用该注解不传参数也没默认值就会报错
    }