I had a question regarding ... parameters in java. Here is the code example
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);
}
}
Does something like this work? I didn't get a compiler error, but when doing something similar, I had problems when changing the value of one of the objects from m1()
.
SOLUTION: I thought that the array would be flattened, but apparently that doesn't happen.
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);
}
}
Thanks, Sibbo for your contribution.