今天没事跑去图书馆逛逛,发现了 Thinking in java 4th 的书,随手翻开了其中的 annotation注解这章,仔细阅读了前两部分,把我心里对annotation的疑问给解决了.
如何定义一个annotation呢?
public @interface MyAnnotation {
public int name();
}
很象一个接口吧,在annotation中定义的方法,就是使用Annotation时候的参数,例如
@MyAnnotation(name="haha")
当然了,在定义Annotation的时候可以通过Java内置的元注解给Annotation设定使用范围,例如是在 Class范围,Field范围,Method范围,不指定就是全部范围。
还有刚Annotation是在什么时候能有有用,当然最常用的一定是 runtime了。
可是,我们没事使用 Annotation 有什么用呢?和平时的注释又有什么区别?
原来,我们通过用Annotation的注解写了是给
比我们代码更高一级的代码看的,例如 Jpa用Annotation定义实体,这样框架就可以通过注解分析出实体的具体定义,然后Mapping到数据库。
或者,对项目控制也有一定的用途。当你完成了方法的需求的时候,加上 老大 给的注解,这样老大通过它的 RTTI 反射检查你写的东东。
这是我的一点认识,知道这些我已经可以明白得使用各种框架给出的Annotation了,不会再存在疑问,未来真需要我来定义annotation的时候,哈哈,再去翻翻Thinking in java第二十章。