跳转到内容

Java注解

维基百科,自由的百科全书

这是本页的一个历史版本,由Bayesianese留言 | 贡献2009年6月14日 (日) 09:06 建立内容为“'''Java 标注'''是Java语言5.0版本开始中加入源代码的特殊语法元数据<ref>{{cite web|url = http://java.sun.com/j2se/1.5.0/doc…”的新頁面)编辑。这可能和当前版本存在着巨大的差异。

(差异) ←上一修订 | 最后版本 (差异) | 下一修订→ (差异)

Java 标注Java语言5.0版本开始中加入源代码的特殊语法元数据[1]

Java语言中的类、方法、变量、参数和包等都可以被标注。Java标注和Javadoc不同,标注有自反性。在编译器生成类文件时,标注可以被嵌入到字节码中,由Java虚拟机执行时获取到标注[2]


实例

  // @Twizzle标注toggle()方法。
  @Twizzle
  public void toggle() {
  }

  // 声明Twizzle标注
  public @interface Twizzle {
  }

标注可以包括一个关键字和值的对构成的列表:

  //等同于 @Edible(value = true)
  @Edible(true)
  Item item = new Carrot();

  public @interface Edible {
    boolean value() default false;
  }

  @Author(first = "Oompah", last = "Loompah")
  Book book = new Book();

  public @interface Author {
    String first();
    String last();
  }

标注声明中可以用标注说明使用方式、时间和对象:

  @Retention(RetentionPolicy.RUNTIME) // 该标注可以在运行时通过反射访问。
  @Target({ElementType.METHOD})       // 该标注只用于类内方法。
  public @interface Tweezable {
  }

编译器保留一组标注用于特定语法目的 (包括 @Deprecated, @Override@SuppressWarnings等)。


参考引用

  1. ^ JDK 5.0 开发者指南:标注. Sun Microsystems. 2007-12-18 [2008-03-05]. .
  2. ^ Sun Microsystems, Java(TM) 语言规范 第三版, Prentice Hall, 2005, ISBN 0321246780 .