gpt4 book ai didi

java - 使用反射创建带有构造函数参数的对象

转载 作者:行者123 更新时间:2023-11-30 04:40:42 26 4
gpt4 key购买 nike

我无法理解以下代码:

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

最佳答案

它尝试传递全部为null的虚拟参数。这可以给你一个对象,但这并不意味着它将是一个有用的对象。 ;)

我不确定为什么它会跳过零长度构造函数,因为这是您可能无法成功传递任何参数的一个构造函数。

关于java - 使用反射创建带有构造函数参数的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12383433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com