我正在尝试调用newInstance
类的java.lang.reflect.Constructor
方法,以便根据收到的构造函数创建一个对象。
我需要在 B类
class A
{
void method()
{
ABC abc = new ABC(arg1,arg2);
Constructor c = Class.forName("someClass").getConstructor(ABC.class);
Object o = B.getObject(c,abc);
Object
//do something
}
}
class B
{
public static Object getObject(Constructor c, Object... args)
{
//how to create dynamic call here???
c.newInstance(args[0],args[1],...,args[args.length-1]);
}
}
class someClass
{
someClass(ABC abc)
{
//do something
}
someClass(ABC abc, int a)
{
//do something
}
}
我无法修改someClass。 (实际上someClass只是一个例子。我正在调用10-15个不同的calsses,所以修改不是一个选项。另外,我需要使B类通用)
答案 0 :(得分:1)
您可以将数组作为...
参数传递:
c.newInstance(args)