我猜你有一个类,里面有一些老师:
public Foo(int i, String s);
public Foo(float fl, String s);
public Foo(String s, Bar b, boolean f);
现在,当您有以下 fn 时:
public Foo doSomething(Object… args)
{
/*… do something before … */
Foo foo = new Foo( ?!? );
/*… do something after … */
return foo;
}
应该如何调用正确的 c-tor?有没有办法将 args 转换回 ...-形式?
最佳答案
否 - 毕竟,其中可能有任何引用,包括空引用。
您必须根据构造函数签名的参数类型检查实际给出的值。
我认为这表明您可能不应该在这种情况下使用可变参数。您始终可以使用与构造函数相同的签名来重载该方法,并为之前/之后部分调用常见的帮助器方法...或者如果构造函数调用的时间并不重要,则全部执行 在普通方法中,除了构造:
public void doSomething(int i, String s)
{
doSomethingHelper(new Foo(i, s));
}
关于Java 可变参数 : a way to get back to the . ..-形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5408723/