龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

Java中的Annotation解析之二(1)

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
一、Java 中的Annotation的定义 Java中的Annotation Java定义了几个标准的meta-annotation,在新Package中java.lang.annotation 中包含了以下meta-annotation: meta-annotation 说明 @Target 1. annotation的target是一个被

一、Java 中的Annotation的定义

Java中的Annotation

Java定义了几个标准的meta-annotation,在新Package中java.lang.annotation 中包含了以下meta-annotation:

meta-annotation 说明

@Target 1. annotation的target是一个被标注的程序元素。target说明了annotation所修饰的对象范围:annotation可被用于packages、types(类、接口、枚举、annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在annotation类型的声明中使用了target可更加明晰其修饰的目标。

meta-annotation 说明 @Target 1. annotation的target是一个被标注的程序元素。target说明了annotation所修饰的对象范围:annotation可被用于packages、types(类、接口、枚举、annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在annotation类型的声明中使用了target可更加明晰其修饰的目标。
  
  2. ElementType的定义
  
  TYPE// Class, interface, or enum (but not annotation)

FIELD// Field (including enumerated values)
  
  METHOD// Method (does not include constrUCtors)
  
  PARAMETER// Method parameter
  
  CONSTRUCTOR// Constructor
  
  LOCAL_VARIABLE// Local variable or catch clause
  
  ANNOTATION_TYPE// Annotation Types (meta-annotations)
  
  PACKAGE// Java package

@Retention 1. SOURCE//按照规定使用注释,但是并不将它保留到编译后的类文件中
  
  2. CLASS//将注释保留在编译后的类文件中,但是在运行时忽略它
  
  3. RUNTIME//将注释保留在编译后的类文件中,并在第一次加载类时读取它 @Documented Documented 表示注释应该出现在类的 Javadoc 中 @Inherited 一个Annotation将被继续

三个标准的Annotation 在java.lang包中:

@Deprecated 对不再使用的方法进行注释 @Override 指明注释的方法覆盖超类的方法 @SuppressWarnings 阻止编译器的警告,例:当类型不安全时

下例来说明这三个标准的Annotation:

package sz.starbex.bill.annotation;
  
  import java.util.ArrayList;
  
  import java.util.List;
  
  public class SimpleOverrideAnnotation {
  
  public static void main(String[] args) {
  
  SimpleOverrideAnnotation test = new SimpleOverrideAnnotation();
  
  System.out.println(test.toString());
  
  }
  
  @Override
  
  public String toString() {
  
  return "自己的类自己输出";
  
  }
  
  @Deprecated
  
  public void doSomething() {
  
  System.out.println("方法已过时" );
  
  }
  
  @SuppressWarnings(value={"unchecked"})
  
  public void testSuppressWarnings(){
  
  List testList=new ArrayList();
  
  testList.add("KKKK");//没有使用范型,类型不安全
  
  }
  
  }

更多的请看:http://www.QQread.com/windows/2003/index.Html

一、Java 中的Annotation的定义

Java中的Annotation

Java定义了几个标准的meta-annotation,在新Package中java.lang.annotation 中包含了以下meta-annotation:

meta-annotation 说明


  

精彩图集

赞助商链接