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

来源:互联网 发布:艾科网络 编辑:程序博客网 时间:2024/05/17 03:52

--------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是一个元注解,是指定某个注解的作用区间,即这个注解使用在哪里,是类上还是方法上还是字段上,还是都有,即可以指定一个或者多个;

 
0 0
原创粉丝点击