黑马程序员技术交流社区
标题:
接上java反射实例2
[打印本页]
作者:
tfy
时间:
2012-12-1 11:07
标题:
接上java反射实例2
公共 对象invokeMethod(对象所有者,字符串方法名,对象[]参数)
抛出 异常{
和类ownerClass = owner.getClass();
[]类argsClass = 新 类[args.length];
( I = 0 ,J = args.length;;我+ +){
argsClass [I] =参数[我]。的getClass();
}
方法方法= ownerClass.getMethod(方法名argsClass)的;
返回 method.invoke(所有者,参数);
}
/ **
*执行某类的静态方法
*
* @参数className的
*类名
* @参数methodName的
*方法名
* @参数ARGS
*参数数组
* @返回执行方法返回的结果
* @抛出异常
* /
公共 对象invokeStaticMethod(字符串类名,方法名的字符串,
对象[]参数) 抛出 异常{
类ownerClass调用Class.forName(类名);
[]类argsClass = 新 类[args.length];
( I = 0 ,J = args.length;;我+ +){
argsClass [I] =参数[我]。的getClass();
}
方法方法= ownerClass.getMethod(方法名argsClass)的;
返回 method.invoke(空里,args);
}
/ **
*新建实例
*
* @参数className的
*类名
* @参数ARGS
*构造函数的参数
* @返回新建的实例
* @抛出异常
* /
公共 对象的String className的对象[]参数的newInstance() 抛出 异常{
类newoneClass调用Class.forName(类名);
[]类argsClass = 新 类[args.length];
( I = 0 ,J = args.length;;我+ +){
argsClass [I] =参数[我]。的getClass();
}
构造函数的利弊= newoneClass.getConstructor(argsClass);
返回 cons.newInstance(参数);
}
/ **
*是不是某个类的实例
* @参数obj的实例
* @参数CLS类
* @返回如果obj的是此类的实例,则返回真
* /
公共 布尔 给isinstance(obj的对象,类cls){
返回 cls.isInstance(OBJ);
}
/ **
*得到数组中的某个元素
* @参数数组的数组
* @参数指标索引
* @返回返回指定数组对象中索引组件的值
* /
公共的 对象getByArray(Object数组, 整数 指数){
返回 Array.get(阵列,指数);
}
}
包 cn.test;
进口 java.lang.reflect.Field;
进口 java.lang.reflect.InvocationTargetException;
进口 java.lang.reflect.Method的;
进口 的java.util.ArrayList;
进口 cn.IpUtils.IpBean;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2