`

think in java 注解学习笔记

    博客分类:
  • Book
阅读更多

注解为我们在代码中添加信息提供一种形式化的方法, 使我们可以在稍后某个时刻非常方便的时候使用这些信息.

注解用来帮助我们将元数据(比如配置信息)与代码结合起来,  因为这就限定了注解的使用范围, 只有那些与代码结合非常紧密, 而java代码又不能很好(或很难)表述的配置信息才是使用注解的最佳场景.

注解的另一个作用可以用来简化一些重复性的工作, 以及自动化某些过程

注解在某种程度上可以看成修饰符的一种

注解的定义跟接口很像, 最终将编译成class文件

@Target, @Retention是注解的注解, 用来对注解进行定义, @Target用来说明注解将用在什么地方(方法or属性), @Retention用来说明注解在何时可用(Source 源码, Class 类文件, Runtime 运行时)

注解定义中, 会指定该注解包含的一些元素(也是元数据的定义), 与接口不同的是, 可以给这些元素指定一些默认值, 然后可以借助程序或者工具对这些元素的值(真正的元数据)进行分析处理, 这个正式注解强大所在

注解需要借助注解处理器来对注解的元数据进行解析处理, 注解处理器是注解的配套设施之一, 而注解处理器在处理注解元数据主要借助了JDK 5的反射机制, 比较有用的是AnnotatedElement接口的getDeclaredMethods()方法和getAnnotation()方法.

注解元素类型只能是:所有的基本类型(int, float, boolean等), String, Class, enum, Annotation, 以及以上类型的数组

注解不支持继承

注解元素的默认值必须是一个确定的值, 而且不能用null作为默认值, 因此, 使用空字符串或0作为默认值是一种常用的做法

 

@Inherited 这个注解的用法是:

如果你定义的注解加了该注解, 那么在子类上可以通过getAnnotations()可以取到父类用到的该annotation, 否则会取不到, 其他不会影响到

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics