动态生成方法参数

时间:2014-06-06 08:12:29

标签: java variadic-functions

我正在尝试调用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类通用)

1 个答案:

答案 0 :(得分:1)

您可以将数组作为...参数传递:

c.newInstance(args)