本帖最后由 汪小照 于 2012-9-28 13:38 编辑
import java.lang.reflect.Method;
public class RflectTest {
public static void main(String [] args) throws Exception
{
Class cls = Class.forName("java.lang.Student"); //为什么程序在这会抛出异常呢?
//拿到一个类的字节码有三种方式: 类名.class 对象.getClass() Class.forName("传递的类名的全程")
//我使用第三种拿字节码,请问会抛出异常?
Student s =(Student)cls.newInstance();
//拿到Student类的方法
Method method = cls.getMethod("show");
method.invoke(s, null);
}
}
class Student
{
public void show()
{
System.out.println("反射的测试");
}
}
异常信息:
Exception in thread "main" java.lang.ClassNotFoundException: Student
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.heima.RflectTest.main(RflectTest.java:8)
|