【发布时间】:2012-08-03 02:09:35
【问题描述】:
当className 是"java.awt.Rectangle" 和"java.lang.String" 等时,以下工作正常。但对于"java.lang.Integer","java.lang.Double" 给java.lang.InstantiationException 给classDefinition.newInstance() 则失败。
Class classs = Class.forName(className);
Object object = classs.newInstance();
这是 Wrapper 类的问题还是其他问题?
已编辑:这样做的方法 - 应归于 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);
【问题讨论】:
-
javadoc 中写得很清楚(Throws 部分:“或者如果类没有空构造函数;”)
标签: java reflection