我对 java 中的 ... 参数有疑问。这是代码示例
class Foo{
private void m1(Object... params){
//do something with params[0]
//do something with params[1]
//do something with params[2]
//do something with params[3]
}
public void m2(Object... params){
Object additionalParam = new Object();
m1(additionalParam, params);
}
}
class Example{
public void main(String[] args){
Foo f = new Foo();
Object o1 = new Object();
Object o2 = new Object();
Object o3 = new Object();
f.m2(o1, o2, o3);
}
}
这样的事情有用吗?我没有收到编译器错误,但是在执行类似操作时,我在将其中一个对象的值从m1()
.
解决方案:我认为阵列会变平,但显然这不会发生。
class Foo{
private void m1(Object... params){
//do something with params[0]
//do something with params[1][0]
//do something with params[1][1]
//do something with params[1][2]
}
public void m2(Object... params){
Object additionalParam = new Object();
m1(additionalParam, params);
}
}
class Example{
public void main(String[] args){
Foo f = new Foo();
Object o1 = new Object();
Object o2 = new Object();
Object o3 = new Object();
f.m2(o1, o2, o3);
}
}
谢谢,Sibbo 的贡献。