Jave中的Annotation详解
来源:互联网 发布:windows程序开发 java 编辑:程序博客网 时间:2024/04/28 20:28
Annotation(修饰符)提供了一个与程序元素关联的任何信息或者任何元数据的途径。可以像修饰符一样使用,并且可以应用于包、类型、构造方法、方法、属性、参数、本地变量的声明中。所有的这些信息被存储的Annotation的“name=value”结构对中。这里说一个从书上看来的潜规则:Annotation不能影响程序代码的执行,无论增加、删除Annotation,代码执行都始终如一。
二、定义Annotation类型
Annotation类型的声明与一般接口的声明极为类似,区别是在interface关键字前加上“@”符
号。
下面是一个简单的Annotation类型JustForTest的声明:
public @interface JustForTest{ int i(); String s(); String ss; String testStr; }当Annotation类型没有成员的时候,声明如下:
public @interface JustForTest{}当Annotation类型只有唯一一个成员时,应命名为value:
public @interface JustForTest{ String value();}
Annotation类型的每个方法声明定义了一个Annotation类型的成员,但方法声明不一定需要参数或者异常声明;方法的返回值的类型被限制为以下范围:primitive、String、Class、enums、annotation和以他们为基类的数组,当然方法可以有默认值。上面例子值得注意的是,Annotation类型声明可以标注自己,这种称为“meta-annotation”,举个例子吧:
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface JustForTest { }这个例子两点说明:
1.@Retention(RetentionPolicy.RUNTIME):这个meta-annotation表示此类型的Annotation将被JVM在运行时通过反射从.class文件中读取;另外还有RetentionPolicy.SOURCE和RetentionPolicy.CLASS分别代表从源文件和编译期间读取。
2.@Target(ElementType.METHOD):表示此类型的Annotation只能修饰方法声明,另外两种取值是ElementType.TYPE和ElementType.FIELD分别代表只能修饰类和属性。
三、内置的Annotation类型
JAVA内置了3种Annotation类型,如下:
1.@Override:这个比较常见,用于修饰此方法覆盖父类方法,而非重载。
2.@Deprecated:用于修饰已经过时的方法。
3.@Suppress Warnings:用于通知JAVA编译器禁止特定的编译警告。
对于Annotation的介绍基本就这么多,下面就是应用了,晚上回去补个实用的例子
,源码此处。
欢迎交流@semoon
- Jave中的Annotation详解
- Jave web 中的乱码问题
- jave
- Annotation详解
- Annotation详解
- Java中的Annotation详解和使用 自定义注解
- [Jave]详解"equals方法"和"==操作符"
- Hibernate annotation 详解
- Spring Annotation 详解
- Java注释(Annotation)详解
- spring Annotation详解
- Java注释(Annotation)详解
- Java Annotation详解
- 转:JAVA ANNOTATION详解
- 《Java Annotation详解》
- Spring Annotation 详解 .
- 转:Java Annotation详解
- Java Annotation详解
- php 两个美元符号:可变变量
- C++二级指针与引用
- ThinkPHP2.1 增加PHPCMS模板引擎,支持PC标签(get,json)
- Android中R.java没有自动生成解决方案
- 请谨慎看待“绿色能源”
- Jave中的Annotation详解
- VC打印相关
- 转:眼图——概念与测量(摘记)
- 一个c++拼图游戏源码
- 查询索引所属的表或视图的信息
- FeatureClass 与DataSet的区别,与Layer的关系
- 传统menu的使用方法总结
- QueryPerformanceFrequency
- jQuery 自动补全