请注意,我不能让forName()专门与“ int”一起使用。 另一方面,它与在与
相同的程序包中创建的类也可以正常工作Class.forName("mypackage.dummyclass")
与完全限定的名称有关吗?我已经尝试过“ java.lang.int”和“ java.lang.integer”,但是没有帮助。
答案 0 :(得分:3)
int
是Java中的原始类型,而不是类,因此请尝试使用java.lang.Integer
(这不是完全相同的东西,但可互换用于许多用途)
答案 1 :(得分:2)
获取与基本类型(例如Class
)关联的int
对象的正确语法是
int.class
同样,对于其他基本类型,请使用byte.class
,long.class
,boolean.class
等。
虽然int
和java.lang.Integer
之间存在特殊的关系,但是int.class
与Integer.class
并不相同。
请注意,您不能将Class.forName
与原始类型名称一起使用。
如the Java tutorial中所述:
Class.forName()
如果一个类的全限定名称可用,则可以使用静态方法Class.forName()
获得相应的类。这不能用于基本类型。
在同一教程中,关于如何对原语使用.class
语法:
.class语法
如果类型可用但没有实例,则可以通过在类型名称后附加“ .class”来获得Class。这也是获取原始类型的Class的最简单方法。
boolean b;
Class c = b.getClass(); // compile-time error
Class c = boolean.class; // correct
答案 2 :(得分:1)
Class.forName
用于类对象,而int
是原始数据类型。
改为尝试java.lang.Integer
。
答案 3 :(得分:0)
int是原始数据类型,而不是类。 Integer类可用于int。因此,您应该使用“整数”。
答案 4 :(得分:0)
尝试使用java.lang.integer
(使用大写字母java.lang.Integer
)来代替I
上面的方法将起作用,因为Class.forName()
试图创建一个以String
arg形式传递的完整类名的对象。
java.lang.Integer
-这是一堂课
int
-这不是一门课。它是原始数据类型。因此,失败了。