基本内置注解@Overridejava中覆写@Deprecated的作用是对不应该在使用的方法添加注释,当编程人员使用这些方法时,将会在编译时显示提示信息,它与javadoc里的@deprecated标记有相同的功能,准确的说,它还不如javadoc@deprecated,因为它不支持参数@SuppressWarnings,其参数有:deprecation,使用了过时的类或方法时的警告unchecked,执行了未检查的转换时的警告fallthrough,当Switch程序块直接通往下一种情况而没有Break时的警告path,在类路径、源文件路径等中有不存在的路径时的警告serial,当在可序列化的类上缺少serialVersionUID定义时的警告finally,任何finally子句不能正常完成时的警告all,关于以上所有情况的警告自定义注释它类似于新创建一个接口类文件,但为了区分,我们需要将它声明为@interface,如:public@interfaceNewAnnotation{}............java中的注解机制2010-04-2212:42注解(Annotation)为我们在代码中天界信息提供了一种形式化的方法,是我们可以在稍后某个时刻方便地使用这些数据(通过解析注解来使用这些数据)。注解的语法比较简单,除了@符号的使用以外,它基本上与java的固有语法一致,java内置了三种注解,定义在java.lang包中。@Override表示当前方法是覆盖父类的方法。@Deprecated表示当前元素是不赞成使用的。@SuppressWarnings表示关闭一些不当的编译器警告信息。下面是一个定义注解的实例Java代码packageTest_annotation;importjava.lang.annotation.Documented;importjava.lang.annotation.Inherited;importjava.lang.annotation.Retention;importjava.lang.annotation.Target;importjava.lang.annotation.ElementType;importjava.lang.annotation.RetentionPolicy;/**元注解@Target,@Retention,@Documented,@Inherited**@Target表示该注解用于什么地方,可能的ElemenetType参数包括:*ElemenetType.CONSTRUCTOR构造器声明*ElemenetType.FIELD域声明(包括enum实例)*ElemenetType.LOCAL_VARIABLE局部变量声明*ElemenetType.METHOD方法声明*ElemenetType.PACKAGE包声明*ElemenetType.PARAMETER参数声明*ElemenetType.TYPE类,接口(包括注解类型)或enum声明**@Retention表示在什么级别保存该注解信息。可选的RetentionPolicy参数包括:*RetentionPolicy.SOURCE注解将被编译器丢弃*RetentionPolicy.CLASS注解在class文件中可用,但会被VM丢弃*RetentionPolicy.RUNTIMEVM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。**@Documented将此注解包含在javadoc中**@Inherited允许子类继承父类中的注解**/@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited/**定义注解Test*注解中含有两个元素id和description*description元素有默认值nodescription*/public@interfaceTest{publicintid();publicStringdescription()defaultnodescription;}packageTest_annotation;importjava.lang.annotation.Documented;importjava.lang.annotation.Inherited;importjava.lang.annotation.Retention;importjava.lang.annotation.Target;importjava.lang.annotation.ElementType;importjava.lang.annotation.RetentionPolicy;/**元注解@Target,@Retention,@Documented,@Inherited**@Target表示该注解用于什么地方,可能的ElemenetType参数包括:*ElemenetType.CONSTRUCTOR构造器声明*ElemenetType.FIELD域声明(包括enum实例)*ElemenetType.LOCAL_VARIABLE局部变量声明*ElemenetType.METHOD方法声明*ElemenetType.PACKAGE包声明*ElemenetType.PARAMETER参数声明*ElemenetType.TYPE类,接口(包括注解类型)或enum声明**@Retention表示在什么级别保存该注解信息。可选的RetentionPolicy参数包括:*RetentionPolicy.SOURCE注解将被编译器丢弃*RetentionPolicy.CLASS注解在class文件中可用,但会被VM丢弃*RetentionPolicy.RUNTIMEVM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。**@Documented将此注解包含在javadoc中**@Inherited允许子类继承父类中的注解**/@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited/**定义注解Test*注解中含有两个元素id和description*description元素有默认值nodescription*/public@interfaceTest{publicintid();publicStringdescription()defaultnodescription;}下面是一个使用注解和解析注解的实例Java代码packageTest_annotation;importjava.lang.reflect.Method;publicclassTest_1{/**被注解的三个方法*/@Test(id=1,description=hellomethod_1)publicvoidmethod_1(){}@Test(id=2)publicvoidmethod_2(){}@Test(id=3,description=lastmethod)publicvoidmethod_3(){}/**解析注解,将Test_1类所有被注解方法的信息打印出来*/publicstaticvoidmain(String[]args){Method[]methods=Test_1.class.getDeclaredMethods();for(Methodmethod:methods){/**判断方法中是否有指定注解类型的注解*/booleanhasAnnotation=method.isAnnotationPresent(Test.class);if(hasAnnotation){/**根据注解类型返回方法的指定类型注解*/Testannotation=method.getAnnotation(Test.class);System.out.println(Test(method=+method.getName()+,id=+annotation.id()+,description=+annotation.description()+));}}}}packageTest_annotation;importjava.lang.reflect.Method;publicclassTest_1{/**被注解的三个方法*/@Test(id=1,description=hellomethod_1)publicvoidmethod_1(){}@Test(id=2)publicvoidmethod_2(){}@Test(id=3,description=lastmethod)publicvoidmethod_3(){}/**解析注解,将Test_1类所有被注解方法的信息打印出来*/publicstaticvoidmain(String[]args){Method[]methods=Test_1.class.getDeclaredMethods();for(Methodmethod:methods){/**判断方法中是否有指定注解类型的注解*/booleanhasAnnotation=method.isAnnotationPresent(Test.class);if(hasAnnotation){/**根据注解类型返回方法的指定类型注解*/Testannotation=method.getAnnotation(Test.class);System.out.println(Test(method=+method.getName()+,id=+annotation.id()+,description=+annotation.description()+));}}}}输出结果如下:Test(method=method_1,id=1,description=hellomethod_1)Test(method=method_2,id=2,description=nodescription)Test(method=method_3,id=3,description=lastmethod)Java之注解文章分类:Java编程注解:也指元数据,在代码中添加信息提供的一种形式化方法。JavaSE5内置了三种标准注解:@Override,@Deprecated,@SuppressWarnings.四种元注解:@Target,@Retention,@Documented,@Inherited.@Target表示可用于什么地方,ElementType包含有:类、接口(包括注释类型)或枚举声明:ElementType.TYPE字段声明(包括枚举常量)ElementTypeFIELD方法声明ElementType.METHOD参数声明ElementType.PARAMETER构造方法声明ElementType.CONSTRUCTOR局部变量声明ElementType.LOCAL_VARIABLE注释类型声明ElementType.ANNOTATION_TYPE包声明ElementType.PACKAGE@Retention表示注释的生命周期,RetentionPolicy取值有:SOURCE编译器要丢弃的注释CLASS编译器将把注释记录在类文件中,但在运行时VM不需要保留注释RUNTIME编译器将把注释记录在类文件中,在运行时VM将保留注释,可以反射性地读取一定义注解Useraction注解类Java代码1.importjava.lang.annotation.ElementType;2.importjava.lang.annotation.Retention;3.importjava.lang.annotation.RetentionPolicy;4.importjava.lang.annotation.Target;5.6.@Retenti