创建带有参数的对象我不明白下面的代码:使用反射在构造
Constructor<T>[] constructors = (Constructor<T>[]) clazz.getConstructors();
for(int i = 0; i < constructors.length; i++){
Constructor<T> constructor = constructors[i];
if (constructor.getParameterTypes().length>0){
T instanceObject = constructor.newInstance(new Object[constructor.getParameterTypes().length]);
break;
}
}
省略try/catch
和其他东西的清晰度。
我不明白这是如何工作的:T instanceObject = constructor.newInstance(new Object[constructor.getParameterTypes().length]);
它调用一个构造函数,它有参数,但作为参数传递Object
?
这是如何工作的?独立于实际形式参数传递Object
?
需要的所有参数为非原始及c TOR有道理瓦特/具有所有参数null – bestsss
@bestsss:从Javadoc – Jim
Jim中自动解开匹配原始形式参数的单个参数,但空值被解包到NPE。我知道规范甚至是impl,真的不需要引用。解包很简单:'Integer.intValue()','Double.doubleValue()' - 因此是NPE。 – bestsss