A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 342508558 中级黑马   /  2015-6-22 10:43  /  322 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

注解
注解和注解处理器<让注解有效,需要有注解处理器/类/方法来执行>
注解当做修饰符来使用
注解可以包含元素如,@Test(aint="100",aString="str"),元素值必须要引号,以逗号分隔,元素可以被注解处理器处理。
注解可以注解在类,方法,成员变量,局部变量
注解通过注解接口定义,如
@Target(ElementType.METHOD)//用于方法前
@Retention(RetentionPolicy.RUNTIME)//运行时保留
public @interface Test{
int aint()=0;
String aString() default "as";
}
注解是接口,但接口的实现类是由虚拟创建的<代理方式>,因此,注解内的元素实际上是方法的声明。
注解是由编译器生成的,所有元素值必须是编译期常量
注解元素值不能为null,可以设为Void.class
源码级的注解由注解处理器处理,处理器继承AbstractProcessor实现Processor接口,使用javac -processor [处理器类][源文件类名]
,处理器会生产相应的源文件。
常用注解
用于编译的注解:@Deprecated,@SuppressWarnings(),@Oveerride,@Generated
用于类、资源管理:@PostConstruct,@PreDestroy,@Resource
四个元注解:@Target,@Retention,@Documented,@Inherited

反射
获得值
class cls = obj.getClass()//获得类对象
Field f = cls.getField(XXX)//获得XXX变量
f.setAccessible(true)//无视访问权限
f.get(obj)//获得obj.xxx的值
clas
forName(xxx)//需要完整的类名<包括包名>


1 个回复

倒序浏览
谢谢分享,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马