PDA

View Full Version : [JAVA] Varargs


marcoqwertyuiop
03-06-2015, 23:13
Salve, vorrei capire come si usa il varargs in java.

Ad esempio ho un metodo che calcola la somma, ma cosa va messo nel return?

public int somma (int...) {

return ----------------
}


In modo che se creo oggetti di grandezza diversa il metodo restituisca sempre la somma.

Amsirak
04-06-2015, 01:43
non li ho mai usati quindi magari dico scemenze, ma dato che non sai da prima il numero degli argomenti, potresti fare:

public int somma (int... nums) {
int somma = 0;
if (nums != null){
for (int i = 0; i < nums.lenght; i++){
somma += nums[i];
}
}
return somma;
}

[Kendall]
04-06-2015, 11:51
In java il varargs viene convertito in un array del rispettivo tipo, tanto che è lecito fare questo:


private static double sum(double... values) {
double[] array = values;

....
....
....
}


All'interno del tuo metodo pertanto andrai a trattarlo come tale.
Per un metodo che restituisce la somma dei valori immessi andrai per esempio a fare una cosa del genere:


private static double sum(double... values) {
double sum = 0.0;
for (double value: values) {
sum += value;
}
return sum;
}