package callback.reflectcallback;public class Cat {
private String name;

public Cat(String name) {
this.name = name;
}

public void show(int num) {
System.out.println("I'm a cat! My name is :" + this.name + ".  I'm NUM " + num);
}
}package callback.reflectcallback;import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Properties;public class ShowPat {
public void showName() {
FileInputStream fis = null;
try {
fis = new FileInputStream(
"D:\\Job\\Java\\Sample1\\callback\\reflectcallback\\config.properties");
Properties p = new Properties();
p.load(fis); String className = p.getProperty("classname");
String methodName = p.getProperty("methodname"); Class c = Class.forName(className);
//Class c = ClassLoader.getSystemClassLoader().loadClass(className);
/*MyClassLoader loader = new MyClassLoader();
Class c = loader.loadClass(className);*/
Object obj = c.newInstance(); Class[] types = new Class[] { int.class };
Method method = obj.getClass().getDeclaredMethod(methodName, types);
Object[] args = { new Integer(10) };
method.invoke(obj, args); } catch (Exception ex) {
ex.printStackTrace(); } finally {
try {
fis.close();
} catch (IOException ex) {
ex.printStackTrace();
} }
}
}class MyClassLoader extends URLClassLoader {
private static File file = new File("D:\\Job\\Java\\Sample1\\"); // 该路径存放着class B,但是没有class A public MyClassLoader() {
super(getUrl());
} public static URL[] getUrl() {
try {
return new URL[] { file.toURL() };
} catch (MalformedURLException e) {
return new URL[0];
}
}
}package callback.reflectcallback;public class Test {
public static void main(String[] args) {
ShowPat show = new ShowPat();
show.showName();
}
}还有一个config.properties 内容是:
classname=callback.reflectcallback.Cat
methodname=show然后运行Test老是报错,java.lang.InstantiationException: callback.reflectcallback.Cat请大家帮帮忙