十.注解

十.注解

注解的理解

1) 注解(Annotation)也被称为元数据(Metadata),用于修饰解释 包、类、方法、属性、构造器、局部变量等数据信息。

2) 和注释一样,注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息。

3) 在 JavaSE 中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在 JavaEE 中注解占据了更重要的角 色,例如用来配置应用程序的任何切面,代替 java EE 旧版中所遗留的繁冗代码和 XML 配置等。

基本的 Annotation 介绍

使用 Annotation 时要在其前面增加 @ 符号, 并把该 Annotation 当成一个修饰符使用。用于修饰它支持的程序元 素 三个基本的 Annotation:

1) @Override: 限定某个方法,是重写父类方法, 该注解只能用于方法

2) @Deprecated: 用于表示某个程序元素(类, 方法等)已过时

3) @SuppressWarnings: 抑制编译器警告

 

@Override 注解的案例

public class Override_ {
   public static void main(String[] args) {
  }
}

class Father{//父类
public void fly(){
System.out.println("Father fly...");
}
public void say(){}
}

class Son extends Father {//子类
   //1. @Override 注解放在 fly 方法上,表示子类的 fly 方法时重写了父类的 fly
   //2. 这里如果没有写 @Override 还是重写了父类 fly
   //3. 如果你写了@Override 注解,编译器就会去检查该方法是否真的重写了父类的
   // 方法,如果的确重写了,则编译通过,如果没有构成重写,则编译错误
   //4. 看看 @Override 的定义
   // 解读: 如果发现 @interface 表示一个 注解类
   /*
   @Target(ElementType.METHOD)
   @Retention(RetentionPolicy.SOURCE)
   public @interface Override {
   }
   */
   @Override //说明
   public void fly() {
  System.out.println("Son fly....");
  }
@Override
public void say() {}
}

元注解

1)元注解的基本介绍

JDK 的元 Annotation 用于修饰其他Annotation

2)元注解的种类

1) Retention //指定注解的作用范围,三种 SOURCE,CLASS,RUNTIME

2) Target // 指定注解可以在哪些地方使用

3) Documented //指定该注解是否会在 javadoc 体现

4) Inherited //子类会继承父类注解

@Retention 注解

说明 只能用于修饰一个 Annotation 定义, 用于指定该 Annotation 可以保留多长时间, @Rentention 包含一个 RetentionPolicy 类型的成员变量, 使用 @Rentention 时必须为该 value 成员变量指定值:

@Retention 的三种值

1) RetentionPolicy.SOURCE: 编译器使用后,直接丢弃这种策略的注释

2) RetentionPolicy.CLASS: 编译器将把注解记录在 class 文件中. 当运行 Java 程序时, JVM 不会保留注解。 这是默认 值

3) RetentionPolicy.RUNTIME:编译器将把注解记录在 class 文件中. 当运行 Java 程序时, JVM 会保留注解. 程序可以 通过反射获取该注解

@Target注解

 

 

@Documented注解

 

 

@Inherited 注解

 

posted @ 2021-11-10 19:57  brysjs  阅读(26)  评论(0)    收藏  举报