newInstance()的InstantiationException [英] InstantiationException for newInstance()

查看:233
本文介绍了newInstance()的InstantiationException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

className java.awt.Rectangle时,以下工作正常java.lang.String等。但它失败了java.lang.Integerjava。 lang.Double classDefinition.newInstance()提供 java.lang.InstantiationException

Following works fine when the className is "java.awt.Rectangle" and "java.lang.String" etc. But it fails for "java.lang.Integer", "java.lang.Double" giving java.lang.InstantiationException for classDefinition.newInstance().

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

这是Wrapper类或其他类的问题吗?

Is this a problem with the Wrapper classes or another?

编辑:这样做的方法 - 积分应该转到Jigar。

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 没有没有-arg(默认)构造函数, class.newInstance()将在内部调用默认构造函数

Because Integer doesn't have no-arg(default) constructor, class.newInstance() will invoke default constructor internally

这篇关于newInstance()的InstantiationException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆