java 注解了解

    注解(元注解)为我们在代码中添加信息提供了一种形式化的方法,使我们在之后的某个时刻非常方便的使用这些数据。注解是jdk1.5之后才出现的。注解可以用来生成描述符文件,甚至是新的类定义,并且有助于减轻编写 模板 代码的的负担。

     注解的优点:我们可以将这些源代码保存在java源代码中,并利用annotation API为自己的注解构造处理工具。更加干净易读的代码以及编译期类型检查等。

      注解语法比较简单,除了@符号的使用外,与java基本的固有的 语法基本一致。在java中内置了3种注解:@Override、@Deprecated、@SuppressWarning

     @Override:重写父类方法

     @Deprecated:标识方法过时了,一般会有新的方法代替了

     @SuppressWarnings:关闭不当的编译器警告信息,如我们在使用集合List时,创建集合对象没有用泛型就会有黄色的警告。

      注意:注解中没有任何元素则为标记注解,注解中的方法不能有参数。

       java元注解:

      @Target:标识该注解可以用于干什么的地方,可能的ElementType参数包括:

                      CONSTRUCTOR:构造方法的声明,

                      FIELD:字段的声明(包括enum(枚举)实例),

                      LOCAL_VARIABLE:局部变量声明,

                     METHOD:方法声明,PACKAGE:包声明,(常用)

                     PARAMETER参数声明,

                     TYPE:类、接口(包括注解类型)或enum声明(常用)

     @Retention:标识该注解信息保存的级别,可选的RetentionPolicy参数包括:

                        SOURCE:注解将被编译器丢弃。

                         CLASS:注解在class文件中可用,但会被VM丢弃。

                         RUNTIME:VM将在运行期也保留注解,因此可以通过反射机制读取注解的信息。(常用)

     @Documented  将此注解包含在Javadoc中

     @Inherited允许子类继承父类中的注解

       注解元素可用的类型: int float boolean等基本类型,String Class  enum Annotation,及其以上类型的数组。(包装类型也不允许使用)

       默认值限制:元素不能有不确定的值,即元素必须要么具有默认值,要么在使用注解时提供元素的值。

 对于非基本类型的元素,无论在源代码声明还是注解接口定义默认值时不能以null作为值。为了避免这些约束我们在定义时给一些默认值,如空字符串,负数、Integer.MAX等作为默认值

     注解不能继承。

  示例见下篇博客: http://shareisattitude.iteye.com/blog/2252581

参考:java编程思想

猜你喜欢

转载自shareisattitude.iteye.com/blog/2251774