public class Test
{
public static void main(String args[]) throws Exception
{
Class cls = Class.forName("Person");
Method method = cls.getMethod("run", null);
method.invoke(cls.newInstance(), null);
}
}
class Person{
public void run(){
System.out.println("Person run");
}
}
报如下错误:
Exception in thread "main" java.lang.ClassNotFoundException: Person
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at score.technology.Test.main(Test.java:9)
public class Test
{
public static void main(String args[]) throws Exception
{
Class cls = Class.forName("Person");
Method method = cls.getMethod("run");//我想是这样的,你的run方法没有接受参数,就可以不用写了,你在这里写了个null,程序就会去找一个带参数的run方法.只不过你 传的参数是null
method.invoke(cls.newInstance());//这里也是一样
}
}
class Person{
public void run(){
System.out.println("Person run");
}
}
//作者: 王飞 时间: 2012-7-20 13:49
个么 在我的机器上运行的结果没有报错
结果是:Person run 作者: 程潇 时间: 2012-7-20 13:56