在用Class.forName方法动态加载构造方法带参数的类时,为了将参数传递进去,可以考虑java的反射机制,比如有一个类如下:
public class Cat{
private int age;
private String name;
public void Cat(String name, int age){
this.name = name;
this.age = age;
}
}
如果想用Class.forName方法动态加载这个类,可以用以下类似的代码实现:
import java.lang.reflect.Constructor;
publc class LoadCat{
private int age;
private String name;
public void LoadCat(String name, int age){
super();
this.name = name;
this.age = age;
}
public static void main(String args[ ]){
Class clazz = Class.forName("Cat");
Constructor constructor = clazz.getConstructor(String.class, int.class);
LoadCat test = (LoadCat) constructor.newInstance("test", 1);
}
}