首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

反照简单实例

2012-12-26 
反射简单实例step1: 通过Class的静态方法forName获取某一个类,返回一个Class对象Class cls Class.forNam

反射简单实例

step1: 通过Class的静态方法forName获取某一个类,返回一个Class对象

Class cls = Class.forName("fanshe.Customer");

?

step2: 使用getConstructor方法获取类的构造函数
?? * 此处getConstructor传入一个参数new Class[]{}
?? * 若想获取无参构造函数就传入new Class[]{}
?? * 若想获取带参数的构造函数就像下面给出的代码一样写,此处给出的代码传入的是两个String类型的参数,还是使用的Class.forName()来获取
?? * 参数的写法需要注意

Constructor cons = cls.getConstructor(new Class[]{Class.forName("java.lang.String"), Class.forName("java.lang.String")});

?

step3:通过调用上一步获得的Constructor实例的newInstance()方法生成一个Object对象实例
?? * 同样还是分为无参和有参两种情况:
?? * 无参有两种方式:两种方式效果相同
?? * 1---Object obj = con.newInstance();
?? * 2---Object obj = con.newInstance(new Object[]{});
?? * 有参的实例化方式:
?? * Object obj = cons.newInstance(new Object[]{"111","222"});

Object obj = cons.newInstance(new Object[]{"111","222"});

?

step4:通过getMethod()方法获取类中的普通方法
?? * 第一个String类型的参数指定需获取的普通方法的名称
?? * 第二个参数指定此方法的参数,若没有传入参数则填入new Class[]{}*/

Method met = cls.getMethod("printInfo", new Class[]{});

?

step5:方法的调用
?? *第一个Object类型的参数表示调用底层方法的对象
?? *第二个参数用于方法调用的参数 */

met.invoke(obj, new Object[]{});

?

?

热点排行