您的位置:首页 > 职场人生

黑马程序员--关于注解的理解

2015-12-24 10:26 288 查看
--------android培训java培训期待与您交流------

关于注解:有三个相关概念;

注解类:定义的注解类@interface

使用注解的类:使用了某个注解的类即在类上,方法上,或者成员变量上写上比如@Override的类;

对注解进行处理的类:对使用了某个注解的类进行处理的类;底层用的是反射机制;

这个可以对比jsp中的标签及JSTL,EL表达式;

我们知道这个标签和表达式是不能工作的,真正起作用的还是其后台的一个个的标签处理器类;

我们知道使用jstl表达式需要有相关的jar包支持,这些标签处理器类就放在这些包中;

至于对注解怎么去处理,有多种方式,但是最基本的原理就是反射了,一些相关的类比如

Introspector,BeanInfo,Method等;

我觉得我们只要学会如何去使用,看的懂别人写的注解和注解处理器类就可以了,真正要你去写出一个是不太现实的

不重复发明轮子。

注解的生命周期:

源文件阶段(source,运行阶段(runtime),class阶段(默认的);

所谓的注解的生命周期,说白了就是问注解存留到哪个阶段,或者说这个

注解是给谁看的,是给编译器看的还是虚拟机看的。。。

比如@Override,是给编译器看的,生命周期是resource,

给注解加属性:即
写一个抽象方法,指定返回值;可以添加默认值

使用时如果仅有一个属性需要添加属性值,可不写等号;

例如

int value();

String name() default "itcast";

@ItcastAnnotation(3);--等同于value=3;

元数据,元注解,元信息;

所谓的元就是更细节化的东西,元注解就是注解的注解,元信息就是

信息的信息;

@Target是一个元注解,是指定某个注解的作用区间,即这个注解使用在哪里,是类上还是方法上还是字段上,还是都有,即可以指定一个或者多个;



转发至微博
 



转发至微博
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: