Java ClassNotFoundException与Class.forName(";int";)

Java ClassNotFoundException与Class.forName(";int";),java,Java,请注意,我无法让forName()特别与“int”一起工作。 另一方面,它可以与我在与 Class.forName("mypackage.dummyclass") 这与完全限定名有关吗?我试过“java.lang.int”和“java.lang.integer”,但都没有用。int是java中的一种基本类型,而不是类,所以试一下java.lang.integer(这两种类型不完全相同,但在许多方面是可互换的)int是一种基本数据类型,而不是类。Integer类可用于int。因此您应该使用“In

请注意,我无法让forName()特别与“int”一起工作。 另一方面,它可以与我在与

Class.forName("mypackage.dummyclass")

这与完全限定名有关吗?我试过“java.lang.int”和“java.lang.integer”,但都没有用。

int
是java中的一种基本类型,而不是类,所以试一下
java.lang.integer
(这两种类型不完全相同,但在许多方面是可互换的)

int是一种基本数据类型,而不是类。Integer类可用于int。因此您应该使用“Integer”。而不是
java.lang.Integer
,请尝试
java.lang.Integer
(大写
I


因为,
Class.forName()
尝试创建一个完整类名的对象,该对象在其中作为
String
arg传递

java.lang.Integer
-这是一个类


int
-这不是一个类。它是一种基本数据类型。因此,失败。

获取与基元类型(如
int
)关联的
对象的正确语法是

int.class
同样,对于其他基元类型,可以使用
byte.class
long.class
boolean.class

虽然
int
java.lang.Integer
之间有一种特殊的关系,
int.class
Integer.class
不是一回事

请注意,不能将
Class.forName
与基元类型名称一起使用

如以下文件所述:

Class.forName()
如果类的完全限定名可用,则可以使用静态方法
class.forName()
获取相应的类。这不能用于基本类型

在同一教程中,关于如何将
.class
语法用于原语:

.class语法
如果类型可用但没有实例,则可以通过在类型名称后附加“.Class”来获取类。这也是获取基元类型类的最简单方法

布尔b
Class c=b.getClass();//编译时错误

Class c=boolean.Class;//正确


Class.forName
用于类对象,但
int
是基本数据类型


试试
java.lang.Integer

试试
java.lang.Integer
,带大写字母I。我强烈建议不要这样做。是什么让你这么做的?
Class.forName
是类对象,
int
是基本数据类型,
Integer
是包装器class@DorianGray只是在处理其他人的示例时感到困惑,这些示例会动态生成类。现在我已经清楚了发生了什么,我将改为int.class。但是我仍然无法使用
class.forName()
@Deadpool访问。没错,您不能使用
class.forName(“int”)
进行访问,这就是Java为此提供特殊语法的原因
int.class
是您要查找的,为什么要使用
class.forname
?你是从动态名称/字符串加载类吗?
Class.forName()
必须适用于所有的类和接口,奇怪的是
int
有类,但它不适用于这些,我很好奇为什么?要么这些类是用其他母语编写的?@ernest_k我只是想,既然我可以使用int.class,那么可以通过forName访问同一个类。因此产生了混乱。