编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

Java注解的保持性策略

在Java编译器编译时,它会识别在源代码里添加的注解是否还会保留,这就是RetentionPolicy。下面是Java定义的RetentionPolicy枚举:
编译器的处理有三种策略:

  • 将注解保留在编译后的类文件中,并在第一次加载类时读取它;

  • 将注解保留在编译后的类文件中,但是在运行时忽略它;

  • 按照规定使用注解,但是并不将它保留到编译后的类文件中。

public enum RetentionPolicy {
    // 此类型会被编译器丢弃
    SOURCE,
    // 此类型注解会保留在class文件中,但JVM会忽略它
    CLASS,
    // 此类型注解会保留在class文件中,JVM会读取它
    RUNTIME
}
import java.lang.annotation.Retention;
// 让保持性策略为运行时态,即将注解编码到class文件中,让虚拟机读取
@Retention(RetentionPolicy.RUNTIME)
public @interface Greeting {
    // 使用枚举类型
    public enum FontColor {
        BLUE, RED, GREEN
    };
    String name();
    FontColor fontColor() default FontColor.RED;
}


未经允许不得转载: 技术文章 » Java编程 » Java注解的保持性策略