首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Method种invoke方法的使用

2012-08-22 
Method类invoke方法的使用java.lang.reflect.Methodpublic Object invoke(Object obj,Object args[])参数:

Method类invoke方法的使用

java.lang.reflect.Method
public Object invoke(Object obj,Object args[])
参数:
obj - 从中调用底层方法的对象,必须是实例化的对象
args - 用于方法调用的参数,是个Object数组,因为参数有可能有多个
返回:
使用参数 args 在 obj 上指派该对象所表示方法的结果??例如:String result = (String)method.invoke(obj ,?sql);执行obj的method方法(参数为sql),返回String类型结果?args参数可以为空,就是对应方法没有参数,如:new Car().getBM() ---- method.invoke( obj );//method为getBM,obj为Car类?obj可以为空,但必填null,表示同类中的公用方法,如:getName( type?) ---- method.invoke( null ,??args);//method为getName,args为type?参数args是个Object数组,即使只有一个参数,也要建object数组如:getName(String aaa , String bbb?)----需要2个参数,method.invoke(null , new Object[] {aaa , bbb});//aaa , bbb分别为getName的2个参数??注意:obj必须是实例化的对象,如果有对应的方法名,就可以实例化?部分代码如下:?Class clz = getClass(clzName);
Object obj = null;
//实例化对象???
try {
????obj = clz.newInstance();
???} catch (InstantiationException e1) {
????e1.printStackTrace();
???} catch (IllegalAccessException e1) {
????e1.printStackTrace();
}?//invoke,执行对应类的method方法try {
?????method.invoke(obj, new Object[]{elValue.trim()});
????} catch (IllegalArgumentException e) {
?????e.printStackTrace();
????} catch (IllegalAccessException e) {
?????e.printStackTrace();
????} catch (InvocationTargetException e) {
?????e.printStackTrace();
????}?getClass在下面:?public static Class getClass(String className) {
??????? Class clz = null;
??????? try {
??????????? clz = Class.forName(className);
??????? } catch (ClassNotFoundException e) {
??????????? e.printStackTrace();
??????? }
??????? return clz;}

热点排行