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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© shaoboguanzi 中级黑马   /  2015-3-19 17:22  /  968 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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();



1 个回复

倒序浏览
赞一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马