JAVA中的 Class类 的使用方法
这段代码无法正常执行,只是想测试一下反射的机制。packageno.yes.flas;publicclassA{publicstaticvoidmain(String[]...
这段代码无法正常执行,
只是想测试一下反射的机制。
package no.yes.flas;
public class A {
public static void main(String[] args) throws ClassNotFoundException,
InstantiationException, IllegalAccessException{
String C = "B";
Class D = Class.forName(C).getClass();
D.newInstance();
}
}
class B {
static {
System.out.println("mmmm");
}
}
抛出异常如下:
Exception in thread "main" java.lang.ClassNotFoundException: B
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.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at no.yes.flas.A.main(A.java:8) 展开
只是想测试一下反射的机制。
package no.yes.flas;
public class A {
public static void main(String[] args) throws ClassNotFoundException,
InstantiationException, IllegalAccessException{
String C = "B";
Class D = Class.forName(C).getClass();
D.newInstance();
}
}
class B {
static {
System.out.println("mmmm");
}
}
抛出异常如下:
Exception in thread "main" java.lang.ClassNotFoundException: B
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.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at no.yes.flas.A.main(A.java:8) 展开
2个回答
展开全部
String C = "B";
Class D = Class.forName(C).getClass();
D.newInstance();
在JAVA中,类的名字一般不是用自己的名字来命名的,“B”是我们已知的名字,但JAVA虚拟机并不知道这样的命名,也找不到你想要的类的位置,所以正确的改法是:
String C = "no.yes.flas.B" 也就是B类所在的包名+“.”+类的名字。你再试一试看看。
Class D = Class.forName(C).getClass();
D.newInstance();
在JAVA中,类的名字一般不是用自己的名字来命名的,“B”是我们已知的名字,但JAVA虚拟机并不知道这样的命名,也找不到你想要的类的位置,所以正确的改法是:
String C = "no.yes.flas.B" 也就是B类所在的包名+“.”+类的名字。你再试一试看看。
追问
我已经解决问题了,还是非常感谢您!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询