varg 引数を指定したメソッドを使用してオーバーライドできます。すでに利用可能なメソッドは 2 と 3 の引数をカバーしているため、1,2,3 を使用して任意の数の入力を表すことができます。
オーバーロードされたメソッドを再利用するサンプル コードを次に示します。
コード
/**
* @author Sudhakar Duraiswamy
*
*/
public class Reuse {
public static void main(String[] args) {
Reuse r = new Reuse();
int[] rr = {1,2,3};
System.out.println(r.Multiply(rr));
int[] rr1 = {1,2,3,3};
System.out.println(r.Multiply(rr1));
int[] rr2 = {1,2,3,3,2};
System.out.println(r.Multiply(rr2));
}
public int Multiply(int... arg){
int result = 1;
if(null != arg && arg.length >0){
if(arg.length ==1){
result = arg[0];
}else if(arg.length ==2){
result = Multiply(arg[0],arg[1]);
}else if(arg.length >=3){
int remainingSize = arg.length % 3;
for(int i=0;i< arg.length-remainingSize ;i= i+3){
result = result * Multiply(arg[i], arg[i+1], arg[i+2]);
}
if(remainingSize == 2){
result =result * Multiply(arg[arg.length-2], arg[arg.length-1]);
}else if(remainingSize == 1){
result = result * arg[arg.length-1];
}
}
}
return result;
}
public int Multiply(int a, int b)
{
int c=1;
return (a * b * c);
}
public int Multiply(int a, int b, int c)
{
return (a * b * c);
}
}