黑马程序员技术交流社区

标题: Java中反射的复习 [打印本页]

作者: shaoboguanzi    时间: 2015-3-19 17:22
标题: Java中反射的复习
Java反射机制的功能:1,在运行时判断任意一个对象所属的类。2,构造任意一个类所属的对象。3,在运行时判断任意一个类所属的成员变量和方法。4,调用任意一个对象的方法。5,生成动态代理。
Reflection的应用:
提醒:反射应用1,必须导入java.lang.reflect.*;包2,必须进行异常处理。
1,class最常用的两种获取方法(一共有四种):(1),应用getclass()方法每一个类都有该方法:Class clazz=al.getClass();
(2)应用static method中Class.forName();
Class clazz=Class.forName("ren");
2,构造函数constructor
获取所有的构造函数clazz.getDeclaredConstructor();
3,创建对象
        ren re=(ren)clazz.newInstance();
因为newInstance创建的对象属于Object型所以一般要强制转化。
4,获取方法calss.getMethod(“方法名字”,参数类型);只能获取一个特定方法。
获取所有方法        clazz.getMethods()注意返回method[]的数组。
调用方法:me.invoke(re, "zhang san");invoke(对象名字,参数类型)
5,获取字段(成员变量)field
获取某一个特定的字段:clazz.getField(name);getfield(变量的名字)
获取说有的字段(成员变量不包括private的)clazz.getMethods()注意返回field[]的数组。
获取含有private的字段:Field f=clazz.getDeclaredField("age");但是不能访问
暴力访问字段(成员变量)f.setAccessible(true);
设置变量f.set();




作者: hyc120500    时间: 2015-3-19 17:23
赞一个!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2