CoreJava系列讲座之Annota

CoreJava系列讲座之Annota

ID:45051132

大小:269.16 KB

页数:13页

时间:2019-11-08

CoreJava系列讲座之Annota_第1页
CoreJava系列讲座之Annota_第2页
CoreJava系列讲座之Annota_第3页
CoreJava系列讲座之Annota_第4页
CoreJava系列讲座之Annota_第5页
资源描述:

《CoreJava系列讲座之Annota》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、CoreJava系列讲座之————Annotation什么是Annotation?Annotation是JDK1.5中新增的特色,它提供了一种机制,将程序元素如:方法,属性,参数,本地变量,包和元数据联系起来。这样编译器可以将元数据存储在Class文件中。这样虚拟机和其他对象可以根据这些元数据来决定如何使用这些程序元素或改变他们的行为。Annotation的语法是?1、类型声明方式annotation的类型声明和一般的接口声明极其相似,区别是它在interface关键字面前使用@符号。注意:1)annotation类型并不是程序必须定义的类型2)方法返回值的类型被限制在以下范围:p

2、rimitives、String、Class、enums、annotation和前面类型的数组;方法可以有默认值。举个annotation类型声明的例子packagesz.starbex.bill.annotation;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;importjava.lang.annotation.ElementType;@Retention(RetentionPolicy.RUNT

3、IME)@Target(ElementType.METHOD)public @interfaceSimpleAnnotation{String value();}@Retention这个meta-annotation表示我们创建的SimpleAnnotation这个Annotation将会存储在Class文件中,并在java    VM运行时加载它。@Target这个meta-annotation表示我们创建的SimplwAnnotation将会为描述方法,而@interfaceSimpleAnnotation是我们自定义的Annotation,它有一个成员叫value,返回值是

4、String。怎样使用Annotation?//packagesz.starbex.bill.annotation;importsz.starbex.bill.annotation.SimpleAnnotation;public classUsingSimpleAnnotation{@SimpleAnnotation(value="Pass:Thismethod will Pass")//注意name=value的用法public void pass(){if(10>5)System.out.println("测试通过");}@SimpleAnnotation("Fail:This

5、method will Fail")//注意name=value的用法public void fail(){if(10<5)System.out.println("测试失败");}}一个Annotation用于程序元素(在本例中是method),在method方法之前用(@Annotation名称(name=value,name=value.....)。在本例中是@SimpleAnnotation(value="Pass:ThismethodwillPass")。每个annotation具有一个名字和成员个数>=0,当只有一个单一的成员时,这个成员就是value。我们也可以这样写@

6、SimpleAnnotation("Fail:ThismethodwillFail")。至此@SimpleAnnotation将Pass和Fail联系起来了。在运行时访问Annotation一旦Annotation与程序元素联系起来,我们可以通过反射访问它们并可以取得它们的值。我们使用一个新的interface:java.lang.reflect.AnnotatedElement。java.lang.reflect.AnnotatedElement接口中的方法有:a.booleanisAnnotationPresent(ClassannotationType)如果指定类型的注释存在

7、于此元素上,则返回true,否则返回false。b.TgetAnnotation(ClassannotationType)如果存在该元素的指定类型的注释,则返回这些注释,否则返回null。c.Annotation[]getAnnotations()返回此元素上存在的所有注释。d.Annotation[]getDeclaredAnnotations()返回直接存在于此元素上的所有注释。    你要注意isAnnotationPresent和getAnnotation方法

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。