编译器如何处理注释?

Gun*_*ant 10 java annotations

我有一些关于在java中使用注释的问题.

如果注释无法转换为字节码,那么这些信息会在哪里发生?元数据在哪里?Java Reflection如何使用这些信息?

编译器如何处理注释?

当我们说,

@Override
public void doSomething(){
}
Run Code Online (Sandbox Code Playgroud)

java编译器用它做什么?

我知道它会检查方法签名,以便该方法应该是一个完全重写的方法,但是如何?

Pet*_*rey 10

有三种类型的注释,请参阅http://download.oracle.com/javase/6/docs/api/java/lang/annotation/RetentionPolicy.html

@Override是一种特殊情况,因为编译器会执行其他检查.