在java 1.5中@Retention背后发生了什么

sug*_*gra 5 java annotations

我试图了解Java 1.5的保留策略.但没有得到清晰的图片.

由于每JavaDoc中,

  • CLASS - 注释将由编译器记录在类文件中,但在运行时不需要由VM保留.
  • RUNTIME - 注释将由编译器记录在类文件中,并在运行时由VM保留,因此可以反射性地读取它们.
  • SOURCE - 编译器将丢弃注释
  1. "丢弃"是什么意思?
  2. 通过使用SOURCE标记类文件,它是否会在其中没有特定的带注释元素?

FTh*_*son 6

SOURCE 注释仅存在于源文件中.

当编译器"丢弃"注释时,它实际上忽略了注释甚至存在.源注释基本上与注释代码具有相同的目的.