注释做了什么?我该如何使用它?

时间:2012-06-04 01:01:25

标签: java annotations

  

可能重复:
  What function do these Java annotations serve?
  How and where are Annotations used in Java?

我正在试图弄清楚,注释是什么,阅读大量文档,但仍然不明白他们做了什么以及如何使用它... 好吧,我有这个示例注释说明:

    @Documented
@interface ClassPreamble {
   String author();
   int currentRevision() default 1;
   String lastModified() default "N/A";
   String lastModifiedBy() default "N/A";
}

然后我试图使用它,但我甚至不知道会发生什么,哈哈:

   @ClassPreamble (author = "James")
public class PreAmbleReal {
    static public void main(String[] args) {




    }

    public String author();

}

那么,有人可以向我解释这个吗?否则我会浪费几个小时的时间,什么都不学。 :/

2 个答案:

答案 0 :(得分:1)

注释的一个用途是它告诉编译器检查特定的东西。例如,@ Override将确保该函数实际上与基类相同。还有一些像@Author这样的注释。我确定你已经去过这个页面,但这是一个更详细的解释 - http://docs.oracle.com/javase/1.5.0/docs/guide/language/annotations.html

答案 1 :(得分:1)

注释本身不做任何事情。它们是一些属性,放在一些其他代码结构(例如方法,类,参数......)上。必须有一些其他处理器来阅读注释并做一些事情。

有些注释只是在源代码中,并没有放在已编译的代码中,因此处理源代码的工具读取并处理它们,一些注释放在编译的代码中但不由类加载器加载,有些被放在编译的代码中并由类加载器加载,因此可以在运行时读取它们(这3个行为通过注释本身上的@Retention注释来区分)。

据我所知,在Java语言规范中,提到运行时缺少注释类不会阻止应用程序工作,这意味着类加载器只是忽略它们。但可能是使用它们的处理器或框架会产生错误(这是他们应该做的)。