当前位置: 首页 > 面试题库 >

newInstance()的InstantiationException

周龙光
2023-03-14
问题内容

以下工作正常时,className"java.awt.Rectangle""java.lang.String"等,但它失败了"java.lang.Integer""java.lang.Double"java.lang.InstantiationExceptionclassDefinition.newInstance()

Class classs = Class.forName(className);
Object object = classs.newInstance();

这是包装类或其他类的问题吗?

编辑:做到这一点的方式-学分应该去吉加尔。

Class       integerDefinition   = Class.forName("java.lang.Integer");
Constructor intArgsConstructor  = integerDefinition.getConstructor(new Class[] {int.class});
Object[]    intArgs             = new Object[] { new Integer(12) };
Object      object              = intArgsConstructor.newInstance(intArgs);

问题答案:

因为Integer没有no-
arg(default)构造函数,所以class.newInstance()将在内部调用默认构造函数



 类似资料:
  • 问题内容: 我在Netbeans 7.2上遇到此错误,它说ClassNotFoundexception和InstantationException。我真的在这个问题上陷入困境。请帮助我。 问题答案: 那么这个简单的方法呢? 我也想知道为什么您要用这种方式连接数据库?最好让服务器对其进行管理。 首先像这样配置(如果您使用的是tomcat): 然后,简单地从servlet / etc中的该资源获取连接

  • 描述 (Description) java.lang.reflect.Constructor.newInstance(Object... initargs)方法使用此Constructor对象表示的构造函数,使用指定的初始化参数创建和初始化构造函数声明类的新实例。 各个参数自动展开以匹配原始形式参数,并且原始参数和参考参数都根据需要进行方法调用转换。 声明 (Declaration) 以下是jav

  • 问题内容: 这很可能是一个愚蠢的问题,但是我是Java的新手,所以… 我目前有一些代码,目前正在使用 我需要将一些参数传递给构造函数,因此我想将其更改为: 我不明白的是,我需要以 参数形式 传递什么,我需要以 args 传递什么。 假设我想传入一个字符串“ howdy”和一些名为XyzObj的XYZ类型的对象。我该如何指定呢?我将通过什么作为参数,而将通过什么作为参数? 问题答案: 在Java中,

  • 问题内容: 我正在尝试为学生的作业构建一个自动测试框架(基于jUnit,但这并不重要)。他们将不得不为某些类创建构造函数,并为其添加一些方法。稍后,使用我提供的测试功能,他们将检查是否正常。 我想做的是 通过反思 创建一个我想测试的类的新实例。问题在于,有时 没有默认构造函数 。我不在乎, 我想创建一个实例并自己初始化实例变量 。有什么办法吗?很抱歉,如果以前已经有人问过这个问题,但我找不到任何答

  • 问题内容: 我在这里看到了很多线程,它们可以进行比较并尝试回答哪个更快:或。 查看源代码,似乎应该 慢很多 ,我的意思是它进行了许多安全检查并使用了反射。我决定进行测量,首先运行jdk-8。这是使用的代码。 我认为这里没有什么大的惊喜(JIT进行了很多优化,使这种差异不 那么大 ): 热代码的差异约为 2 倍,单次射击时间的差异更糟。 现在,我切换到jdk-9(以防万一,请构建157)并运行相同的

  • 问题内容: 连接到MySQL数据库时,请执行以下步骤 实际上,我想知道语句的作用。 虽然此类不在mysql.jar中。它在哪里? 问题答案: 本类位于java.lang包,因此在分布用java,并自动导入到每个班级。 该方法所做的只是返回由类加载器加载的参数对象。然后,该方法返回该类的新实例。 因此,发生什么情况是您称之为 返回com.mysql.jdbc.Driver.class。然后,您调用该