¿Cómo funcionan los java varargs y cuándo debes usarlos?

Contenido del Bootcamp Dirigido por: | Última modificación: 2 de octubre de 2024 | Tiempo de Lectura: 4 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Los que llevan tiempo programando en Java, saben que a veces hay situaciones en las que un método necesita aceptar múltiples argumentos del mismo tipo. Para afrontar estas situaciones, existe una herramienta muy útil: los java varargs. Si aún no los conoces y estás luchando con esta situación, sigue leyendo para que aprendas cómo funcionan y cuándo los puedes usar.

qué son los java varargs

¿Qué son los java varargs?

Los java varargs, que significa argumentos variables, son una herramienta muy útil con la que puedes crear métodos que reciben una cantidad flexible de parámetros del mismo tipo. Es decir, varargs te deja escribir un método que acepte desde un solo argumento, hasta muchos, o incluso ninguno y todo queda en una sola línea de código.

Lo cierto es que, usar los varargs es muy simple. Solo debes añadir tres puntos (…) después del tipo de dato que quieras, y listo. Por ejemplo, si antes tenías que escribir varios métodos para manejar diferentes cantidades de parámetros, con varargs puedes evitar todo eso y simplificar tu código.

public void mostrarNombres(String... nombres) {
for (String nombre : nombres) {
System.out.println(nombre);
}
}

En este caso, el método mostrarNombres puede recibir cualquier cantidad de argumentos de tipo String, desde ninguno hasta muchos. Si llamas a mostrarNombres(«Juan», «Ana», «Pedro»), imprimirá los tres nombres. Si no pasas ningún argumento, no imprimirá nada.

Cómo funcionan los java varargs

Lo que sucede al declarar un método con varargs es que Java trata esos argumentos como un array detrás de escena. Significa que, internamente los argumentos se agrupan en una lista o un array del tipo especificado.

Imagina que estás desarrollando una aplicación que gestiona pedidos, y cada pedido puede incluir una cantidad variable de productos. Con varargs, puedes crear un método para agregar productos de una forma más sencilla.

public class Pedido {
private List<String> productos = new ArrayList<>();

public void agregarProductos(String... productosVarargs) {
for (String producto : productosVarargs) {
productos.add(producto);
}
}

public void mostrarProductos() {
System.out.println("Productos en el pedido: " + productos);
}
}

Aquí, el método agregarProductos puede recibir uno o más productos como argumentos, sin necesidad de crear varias versiones del método para cada cantidad posible de productos. Así, si llamas a agregarProductos(«Manzana», «Banana», «Naranja»), todos esos productos se añadirán al pedido de una sola vez.

¿Cuándo deberías usar los java varargs?

Existen ciertos escenarios en los que los java varargs son realmente útiles, y otros donde es mejor evitarlos:

Úsalos cuando:

  1. Cuando no sabes de antemano cuántos parámetros necesitarás: Si el número de argumentos puede variar, los varargs te permiten aceptar múltiples parámetros sin tener que definir múltiples versiones del método.
  2. Para simplificar código: En lugar de sobrecargar un método con varias versiones para diferentes números de parámetros, puedes usar varargs para mantener tu código limpio y legible.
  3. Cuando todos los parámetros son del mismo tipo: Si tus argumentos son homogéneos (todos son del mismo tipo), como en el caso de varios String o int, los varargs son muy útiles.

Evítalos cuando:

  1. Cuando el número de parámetros es fijo: Si sabes exactamente cuántos parámetros necesita tu método, es mejor declararlos explícitamente. Usar varargs en estos casos solo añade complejidad innecesaria.
  2. Cuando los parámetros son de tipos diferentes: Si los argumentos tienen tipos distintos, los varargs no son la opción adecuada. En estos casos, es preferible usar sobrecarga de métodos o crear una clase que agrupe esos valores.
  3. Cuando afecta la legibilidad del código: Si el uso de varargs hace que el propósito de tu método sea menos claro, puede que no sea la mejor solución. Mantener la claridad del código siempre debe ser una prioridad.

Ejemplo de uso avanzado con java varargs

Para este ejemplo que es un poco más complejo, vas a imaginar que estás desarrollando

un sistema de evaluación de estudiantes. Cada estudiante tiene varias calificaciones y necesitas calcular su promedio. Con los java varargs puedes pasar una cantidad variable de calificaciones al método de cálculo:

public class Estudiante {
private String nombre;

public Estudiante(String nombre) {
this.nombre = nombre;
}

public double calcularPromedio(int... calificaciones) {
int suma = 0;
for (int calificacion : calificaciones) {
suma += calificacion;
}
return calificaciones.length > 0 ? (double) suma / calificaciones.length : 0;
}

public static void main(String[] args) {
Estudiante estudiante = new Estudiante("Carlos");
double promedio = estudiante.calcularPromedio(90, 85, 100);
System.out.println("Promedio de calificaciones: " + promedio);
}
}

Como puedes observar, el método calcularPromedio utiliza varargs para aceptar una cantidad variable de calificaciones. El cálculo del promedio se realiza de manera flexible, sin importar cuántas calificaciones se pasen como argumento.

El uso de los java varargs para simplificar métodos que requieren un número variable de argumentos, ha sido una gran herramienta para los desarrolladores. Aunque no deben usarse siempre, ya puedes identificar aquellos escenarios en los que te resultará muy útil.

Continúa aprendiendo sobre los varargs y otros conceptos importantes de Java en el Bootcamp Java Full Stack de KeepCoding. Esta es la oportunidad perfecta para ti. Este programa intensivo te preparará para convertirte en un desarrollador altamente capacitado, listo para afrontar los desafíos del mundo IT. ¡No pierdas la oportunidad de transformar tu vida con un sector que ofrece estabilidad laboral y altos salarios!

Posts más leídos

¡CONVOCATORIA ABIERTA!

Java y Spring Boot

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado