java中的反射机制

java中的反射机制

ID:21389516

大小:64.50 KB

页数:8页

时间:2018-10-21

java中的反射机制_第1页
java中的反射机制_第2页
java中的反射机制_第3页
java中的反射机制_第4页
java中的反射机制_第5页
资源描述:

《java中的反射机制》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、反射,当吋经常听他们说,自己也看过一些资料,也可能在设计模式中使用过,但是感觉对它没有一个较深入的了解,这次重新学习了一下,感觉还行吧!一,先看一下反射的概念:主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。但是反射使用不当会成本很高!看概念很晕的,继续往下看。二,反射机制的作用:1,反编译:.class--〉.java2,通过反射机制

2、访问java对象的属性,方法,构造方法等;这样好像更容易理解一些,下边我们具体看怎么实现这些功能。三,在这里先看一下sun为我们提供了那些反射机制屮的类:java.lang.Class;java.lang.reflect.Constructor;java.lang.reflect.Field;java.lang.reflect.Method;java.lang.reflect.Modifier;很多反射中的方法,属性等操作我们可以从这四个类中查询。还是哪句话要学着不断的查询API,那才是我们最好的老师。叫,具体功能实现:1,反射机制获取类有

3、三种方法,我们来获取Employee类[java]viewplaincopyprint?C11.//第一种方式:2.Classcl=Class.forName(HEmployee");3.//第二种方式:L.//java中每个类型都有class属性.p.Classc2=Employee.class;617.//第二种方式:8.//java语言中任何一个java对象都有getClass方法p.Employeee=newEmployee。;10.Classc3=e.getClass();//c3足运打时炎(e的运打时炎足Employee)2,创

4、建对象:获取类以后我们来创建它的对象,利用newlnstance:[java]viewplaincopyprint?C1.Classc=Class.forName(HEmployee1');3.//创逑此Class对象所表示的类的一个新实例4.Objecto=c.newlnstance();//调川fEmployee的无参数构造方法.2,获取属性:分为所有的属性和指定的属性:a,先看获取所有的属性的写法:[java]viewplaincopyprint?C1.//获取整个类2.Classc=Class.forName("java.lang.

5、Integer");3.//获取所冇的属性?4.Field[]fs=c.getDeclaredFields();5.5.//定义可变长的字符串,川來存储域性6.StringBuffersb=newStringBuffer();7.//通过追加的方法,将每个属性拼接到此字符串中8.//最外边的public定义9.sb.append(Modifier.toString(c.getModifiers())+"class"+c.getSimpleName()+,'{,');10.//里边的每一个属性11.for(Fieldfield:fs){1

6、2.sb.append("t");//空格13.sb.append(Modifier.toString(field.getModifiers())+"");//获似属性的修饰符,例如public,static等等14.sb.append(field.getType().getSimpleName()+"");//屈性的炎别的名字15.sb.append(field.getName()+";");//诚性的名字+回午:16.}18.17.sb.append(,,}n);20.21.System.out.printIn(sb);b,获取特

7、定的属性,对比着传统的方法来学习:[java]viewplaincopyprint?C1.publicstaticvoidmain(String[]args)throwsException!2.3.〈spanstyle=Hwhite-space:preH>

8、eldidF=c.getDeclaredField("id");11.//实例化这个类赋给o12.Objecto=c.newlnstance();13.//打破封装14.idF.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。