Java动态调用类方法的应用

王朝java/jsp·作者佚名  2008-05-31
宽屏版  字体: |||超大  

今天看到的好文章和大家分享一下:

http://www.internetism.org/qbbs/ShowAnnounce.ASP?boardID=1&RootID=375&ID=375

http://www.internetism.org/qbbs/ShowAnnounce.ASP?boardID=1&RootID=375&ID=376

下面是我修改了一下的代码:

package testclass;

public class class1 { public class1(){}

public int add(int a,int b){ return a+b; }

}

package dyn_callmethod;

import Java.lang.reflect.*;

import testclass.class1;

public class callclass {

public callclass() {

}

public static void main(String args[]){

try{

Class cls = Class.forName("testclass.class1");

System.out.println("Load the target class");

Class partypes[] = new Class[2];

partypes[0] = Integer.TYPE;

partypes[1] = Integer.TYPE;

Method meth = cls.getMethod("add", partypes);

System.out.println("get the method of the class");

//testclass.class1 methobj = new testclass.class1(); ///////////////////////////////////////////////////// //Class const = Class.forName("testclass.class1"); Class par[] = null; ConstrUCtor ct = cls.getConstructor(par);//因为class1的构造函数是无参的所以我就给getConstructor

输入了一个为null的Class数组做参数 /////////////////////////////////////////////////////

Object arglist[] = new Object[2];

arglist[0] = new Integer(37);

arglist[1] = new Integer(47);

//Object retobj = meth.invoke(methobj, arglist); Object retobj = meth.invoke(ct.newInstance(null), arglist);

Integer retval = (Integer)retobj;

System.out.println(retval.intValue());

}

catch(Exception e){

System.err.println(e);

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有