您的位置:首页 > 编程语言 > Java开发

Java基础知识之注解Annotation

2014-07-20 12:16 337 查看
1 注解的概念

注解Annotation是JDK 5.0之后推出的一个新的特新,注解是Java的一个新特性,和类,接口,枚举在同一层次上。主要作用是文档编制,编译检查,代码分析。

元数据:Java的注解,数据的数据

2 JDK的基本注解

@SuppressWarnings:阻止编译器发出某些警告信息

deprecation:过时的类或者方法的警告

unchecked:执行了没检查的转换的警告

fallthrough,path,serial,finally,all

@deprecated:标记某个过时的类或者方法

@Override:重载

3 元注解

专门负责注解其他的注解

@Target:用来标明注解可以放在那些元素之前

ElementType.TYPE:注解只能被声明在一个接口,类前面

ElementType.FIELD:注解只能声明在一个字段前面

ElementType.METHOD:直接只能声明在一个方法前面

ElementType.PARAMETER:说明该注解只能被声明在一个方法参数前

ElementType.CONSTRUCTOR:说明该注解只能声明在一个类的构造方法前

ElementType.LOCAL_VARIABLE:说明该注解只能声明在一个局部变量前

ElementType.ANNOTATION_TYPE:说明该注解只能声明在一个注解类型前

ElementType.ANNOTATION_TYPE:说明该注解只能声明在一个注解类型前ElementType.ANNOTATION_TYPE:说明该注解只能声明在一个注解类型前ElementType.PACKAGE:说明该注解只能声明在一个包名前ElementType.PACKAGE:说明该注解只能声明在一个包名前

ElementType.PACKAGE:说明该注解只能声明在一个包名前

@Retention:它是被定义在一个注解类的前面,用来说明该注解的生命周期

RetentionPolicy.SOURCE:指定注解只保留在一个源文件当中

RetentionPolicy.CLASS:指定注解只保留在一个 class 文件中

RetentionPolicy.RUNTIME:指定注解可以保留在程序运行时

@Documented:

目的就是让这一个 Annotation 类型的信息能够显示在 javaAPI 说明文档上;没有添加的话,使用 javadoc 生成 API 文档的时候就会找不到这一个类型生成的信息

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

public @interface Annotation01
{
//定义公共的 final 静态属性
……
//定义公共的抽象方法
……
}


注解的成员:注解和接口相似,只能定义final静态属性没和公共抽象方法

注解的方法:

方法前默认会加上 public  abstract

在声明方法时可以定义方法的默认返回值,如:

String  color()  default  “blue”;

String  color()  default  {“blue”, “red”, ……}

方法的返回值的类型:可以有8种基本类型(byte, short, int, long, float, double, boolean, char,)、String、Class、枚举、注解及这些类型的数组

注解的使用分为三个过程:定义注解-->声明注解-->得到注解

定义注解:

声明注解

在哪些元素上声明注解:

对注解的方法的返回值进行赋值:对于注解中定义的每一个没有默认返回值的方法,在声明注解时必须对它的每一个方法返回值进行赋值。

 一般形式:@注解名(方法名=方法返回值, ……)

 如果方法返回的是一个数组时,那么将方法返回值写在{}符号里

 @注解名(方法名={返回值1, 返回值2, ……}, ……)

得到注解:对于生命周期为运行期间的注解,都可以通过反射获得该元素上的注解实例

 1、声明在一个类中的注解:可以通过该类 Class 对象的 getAnnotation 或 getAnnotations 方法获得

 2、声明在一个字段中的注解:通过 Field 对象的 getAnnotation 或 getAnnotations 方法获得

 3、声明在一个方法中的注解: 通过 Method 对象的 getAnnotation 或 getAnnotations 方法获得

注解可以看成是一个接口,注解实例就是一个实现该接口的动态代理类。

注解大多是用做对某个类、方法、字段进行说明,标识的。以便在程序运行期间我们通过反射获得该字段或方法的注解的实例,来决定该做些什么处理或不该进行什么处理

注解可以看成是一个接口,注解实例就是一个实现该接口的动态代理类。String  color()  default  {“blue”, “red”, ……}

String  color()  default  {“blue”, “red”, ……}

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: