class.forName无法加载当前包里面的类?

class.forName无法加载当前包里面的类?

伴我心暖 发布于 2021-11-27 字数 1272 浏览 789 回复 3

1.我编写的测试代码如下

package com.stu.test.object;

public class TestReflection {

	public static void main(String[] args) throws ClassNotFoundException {
		// TODO Auto-generated method stub
		String str = "T";
		Class.forName(str);
	}
}

class T
{
	static{
		System.out.println("T class load.");
	}
}

配置文件设置:

3.出现的错误:

java.lang.ClassNotFoundException: T
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:259)
at com.stu.test.object.TestReflection.main(TestReflection.java:8)

4.为什么会出现这样的错误?看别人测试是正常的,我自己测试就这样了

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

能否归途做我良人 2021-11-30 3 楼

可能“人家”load class的逻辑和你有差异

墨洒年华 2021-11-29 2 楼

引用来自“fneg”的评论

class名字是这个 "com.stu.test.object.TestReflection$T"

问题解决了,添加完整的包名类名。

乞讨 2021-11-28 1 楼

class名字是这个 "com.stu.test.object.TestReflection$T"