首页 > 编程语言 > 详细

Java反射API研究(1)——注解Annotation

时间:2015-10-16 20:31:34      阅读:341      评论:0      收藏:0      [点我收藏+]

  注解在表面上的意思,只是标记一下这一部分,最好的注释就是代码自身。而在java上,由于注解的特殊性,可以通过反射API获取,这种特性使得注解被广泛应用于各大框架,用于配置内容,代替xml文件配置。

  要学会注解的使用,最简单的就是定义自己的注解,所以需要先了解一个java的元注解

1、元注解--注解的注解

  元注解的作用就是负责注解其他注解,在java1.6上,只有四个元注解:@Target、@Retention、@Documented、@Inherited。在java1.8上,多了@Native与@Repeatable。下面先说说这几个元注解

  (1)、Documented

    这个纯粹是语义元注解,指示某一类型的注释将通过 javadoc 和类似的默认工具进行文档化。应使用此类型来注释这些类型的声明:其注释会影响由其客户端注释的元素的使用。如果类型声明是用 Documented 来注释的,则其注释将成为注释元素的公共 API 的一部分。被这个注解注解的注解(真拗口...)会在自动生成api文档时加载文档中。他的声明时这样的:

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Documented {
}

  (2)、Inherited

    指示注释类型被自动继承。如果在注释类型声明中存在 Inherited 元注释,并且用户在某一类声明中查询该注释类型,同时该类声明中没有此类型的注释,则将在该类的超类中自动查询该注释类型。此过程会重复进行,直到找到此类型的注释或到达了该类层次结构的顶层 (Object) 为止。如果没有超类具有该类型的注释,则查询将指示当前类没有这样的注释。 

    注意,如果使用注释类型注释类以外的任何事物,此元注释类型都是无效的。还要注意,此元注释仅促成从超类继承注释;对已实现接口的注释无效。 

    即一个类中,没有@Father的注解,但是这个类的父类有@Father注解,且@Father注解被@Inherited注解,则在使用反射获取子类@Father注解时,是可以获取到父类的@Father注解的。

  (3)、

  (4)、

  (5)、

  (6)、

Java反射API研究(1)——注解Annotation

原文:http://www.cnblogs.com/guangshan/p/4886029.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!