Ya está respondido en: http://www.javahispano.org/java-se/post/2355755
Como siempre se puede mejorar, sigue una nueva implementación de Operaciones.
Por si en el otro hilo no quedaba claro, el método public int sumar(int... valores) es el que reemplaza todos los métodos sumar propuestos. Con una diferencia: este nuevo método sirve para sumar un número indeterminado de enteros.
Los otros dos métodos permiten sumar arrays o listas de Integer.
public class Operacion {
public int sumar(Integer... valores) {
return sumar(Arrays.asList(valores));
}
public int sumar(List<Integer> valores) {
int suma = 0;
suma = valores.stream().reduce(suma, Integer::sum);
return suma;
}
public int sumar(int... valores) {
int suma = 0;
suma = Arrays.stream(valores).reduce(suma, Integer::sum);
return suma;
}
}
public class Operación{
public int sumar(int a, int b){return a+b;}
public int sumar(int a, int b, int c){return a+b+c;}
public int sumar(int a, int b, int c, int d){return a+b+c+d;}
}
Con las versiones más recientes de java ¿cuál es la mejor estrategia para reducir el código anterior?