您的位置:首页 > 编程语言 > Java开发

Java运行时动态加载类之ClassLoader方法带参数

2017-03-23 11:07 597 查看
和该文环境一样http://blog.csdn.net/fjssharpsword/article/details/64922083

不同的是,在load出的class调用具体方法时传递参数。

1、User.class代码

package cn.fjs;

public class User {

public void say(String name){
System.out.println(name);
}

}


2、DynamicClassLoaderTest代码
package cn.fjs;

import java.util.List;
import java.util.Map;
import cn.fjs.DynamicClassLoader;
import cn.fjs.DynamicDom;

public class DynamicClassLoaderTest {
public static void main(String[] args) {
DynamicDom dmo = new DynamicDom();//xml文件解析类
Map<String, List<String>> classes;
//重载ClassLoader类
DynamicClassLoader loader = new DynamicClassLoader(new String[]{"D:\\tmp\\"});
try {
classes = dmo.getMethods("D:\\tmp\\a.xml");
for(String key:classes.keySet()){
for(String clazz : classes.get(key)){
Class<?> c =loader.findClass(key);//类名字
//c.getMethod(clazz).invoke(c.newInstance());//方法名字
c.getMethod(clazz,String.class).invoke(c.newInstance(),"fjs");//带参数
}
}
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: