黑马程序员技术交流社区

标题: 理解Java基础之注解Annotation [打印本页]

作者: 刘丁    时间: 2012-2-15 05:09
标题: 理解Java基础之注解Annotation
如何理解Annotation它又有什么作用。
作者: 黄秋    时间: 2012-2-15 06:45
本帖最后由 黄秋 于 2012-2-15 06:47 编辑

  注解(annotation)是 JDK 5 新引进的机制。注解使得Java源代码中不但可以包含功能性的实现代码,还可以添加元数据。注解的功能类似于代码中的注释,所不同的是注解不是提供代码功能的说明,而是实现程序功能的重要组成部分。
  常见的 @Override和@SupressWarnings,这两个注解,称为标记注解(marker annotation ),就是打上个标记,便于其他方法找到它。其它的注解可以有自己的配置参数的,例如 @SuppressWarnings("unchecked"), 可取消:使用集合时,没有用泛型 (Generics) 来指定集合元素类型的警告。

下面为三种标准注解以及四种元注解:

1、@Target 表示该注解用于什么地方,可能的 ElemenetType 参数包括:
            ElemenetType.CONSTRUCTOR   构造器声明
            ElemenetType.FIELD   域声明(包括 enum 实例)
            ElemenetType.LOCAL_VARIABLE   局部变量声明
            ElemenetType.METHOD   方法声明
            ElemenetType.PACKAGE   包声明
            ElemenetType.PARAMETER   参数声明
            ElemenetType.TYPE   类,接口(包括注解类型)或enum声明
2、@Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括:
            RetentionPolicy.SOURCE   注解将被编译器丢弃
            RetentionPolicy.CLASS   注解在class文件中可用,但会被VM丢弃
            RetentionPolicy.RUNTIME   VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息
3、@Documented 将此注解包含在 javadoc 中
4、@Inherited 允许子类继承父类中的注解'
5、@Deprecated  表示当前元素是不赞成使用的。
6、@Override  表示当前方法是覆盖父类的方法
7、@SuppressWarnings  表示关闭一些不当的编译器警告信息




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2