代码之家  ›  专栏  ›  技术社区  ›  vanhemt

ClassNotFoundException与Class.forName(“int”)

  •  -2
  • vanhemt  · 技术社区  · 7 年前

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

    Class.forName("mypackage.dummyclass")
    

    5 回复  |  直到 7 年前
        1
  •  3
  •   johnheroy    7 年前

    int 是Java中的基本类型,而不是类,请尝试 java.lang.Integer 取而代之的是(这不是完全相同的东西,但在许多方面是可互换的)

        2
  •  2
  •   Community Mohan Dere    6 年前

    获取 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

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

    boolean b;
    Class c = b.getClass(); // compile-time error
    Class c = boolean.class; // correct

        3
  •  1
  •   Alon    7 年前

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

    尝试 java.lang.Integer 相反

        4
  •  0
  •   mahfuj asif    7 年前

    int是基本数据类型,而不是类。Integer类可以用于int。所以您应该使用“Integer”。

        5
  •  0
  •   Pankaj Singhal    7 年前

    而不是 java.lang.integer 尝试 java.lang.Integer I )


    上述措施之所以有效,是因为, Class.forName() 尝试创建传递为的完整类名的对象 String arg在里面。

    java.lang.Integer

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