注解

Java注解(Annotation)称为元数据,它为我们在代码中添加信息提供了一种形式化的方法。注解是JDK1.5引入的,Java有一套注解,共有7个,3个在Java.lang中,4个在java.long.annotation中。

作用在代码中的注解有三个,分别是:

  • @Override:重写标记,一般用在子类继承父类后,标注在重写过后的子类方法上。如果发现其父类,或者引用的接口没有该方法时编译报错。
  • @Deprecated:这个注解进行代码注释用的比较少,不推荐
  • @SuppressWarnings:这个注解的起到忽略编译器警告作用

元注解有四个,元注解是用来标志注解的注解,分别是:

1、@Retention:标识如何存储,是在代码中还是编入class文件中,或者是在运行是可以通过反射访问。

  • RetentionPolicy.SOURCE:注解只保留在源文件中,当Java文件编译成class文件的时候,注解被遗弃;
  • RetentionPolicy.CLASS:注解被保留在class文件中,但JVM加载class文件的时候被遗弃,这是默认的生命周期;
  • RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,JVM加载class文件之后,依然存在;

2、@Documented:标记这些注解是否包含在JavaDoc中。

3、@Target:标记这个注解说明了Annotation类型所修饰的对象范围,Annotation可被拥有packagestypes(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数),取值如下:

 1 package day04;
 2 
 3  
 4 
 5 public enum Demo02 {
 6 
 7     TYPE,
 8 
 9     FIELD,
10 
11     METHOD,
12 
13     PARAMETER,
14 
15     CONSTRUCTOR,
16 
17     LOCAL_VARIABLE,
18 
19     ANNOTATION_TYPE,
20 
21     PACKAGE,
22 
23     TYPE_PARAMETER,
24 
25     TYPE_USE
26 
27  
28 
29 }

4、@Inherited:标记这个注解是继承于哪个注解类的。

JDK1.7开始,又添加了三个额外的注解,分别是:

  • @SafeVarags:在声明可变参数的构造函数或方法时,Java编译器会报Unchecked警告。使用@SafeVarargs可以忽略这些警告。
  • @FunctionnalInterface:表明这个方法是一个函数式接口。
  • @Repeatable:标识某注解可以在同一个声明上使用多次。

注意:注解不支持继承

posted @ 2021-01-30 23:21  Eleanor123  阅读(58)  评论(0编辑  收藏  举报