调用带有未知参数的构造函数



我有一组类:TestClass1, TestClass2TestClass3。所有这些类都继承自MainTestClass类。类TestClass1TestClass2TestClass3有不同的构造函数。例如:

TestClass1(String s)
TestClass2(Integer i)
TestClass3(Double d)

类可以有多个构造函数——每个构造函数都不同。

现在我想随机创建这些类的实例并将它们存储在List中。为此,我存储TestClass1Class对象,…使用TestClass1.class,…在一个列表中。然后,我得到每个类的第一个构造函数,它有非零参数计数。现在,当我想使用newInstance()方法创建对象时,我不知道传递给这个特定构造函数的参数的类型和计数。

有可能实现这样的东西使用反射吗?我一直在想这样的事情

setConstructorArgument(int number, Object value)

setConstructorArguments(Object[] arguments)

在Java中是否存在类似的方法?

构造函数对象有一个newInstance方法,该方法可以接受参数进行构造它所属的阶级。显然,实参必须与期望的形参匹配getParameterTypes方法可以提供这些。

对象……initargs实际上意味着Object[] initargs,除了它允许语法

newInstance(param1, param2, param3);

newInstance(new Object[]{param1, param2, param3});

你还应该记住

newInstance(null);

不代表

newInstance(new Object[]{null});

不时地抓住人们。

我个人不喜欢变量,但这就是生活。

相关内容

  • 没有找到相关文章

最新更新