La Propuesta de Mejora de Java (JEP) 456, titulada "Variables y Patrones Anónimos", introduce en Java la capacidad de declarar variables y patrones sin nombre utilizando el carácter de subrayado (_). Esta característica, incorporada en Java 22, permite a los desarrolladores indicar explícitamente que ciertas variables o parámetros no serán utilizados, mejorando así la claridad y mantenibilidad del código.
En situaciones donde una variable debe ser declarada pero su valor no es necesario, se puede emplear el carácter _ como nombre de la variable. Esto es útil en contextos como bucles for, bloques catch y expresiones lambda.
Veamos un ejemplo en un bucle for:
int[] numeros = {1, 2, 3, 4, 5};
int total = 0;
for (int _ : numeros) {
total++;
}
System.out.println("Total: " + total);
En este caso, el bucle itera sobre el array numeros sin necesidad de utilizar el valor de cada elemento, incrementando simplemente el contador total.
Veamos un ejemplo en un bloque catch:
try {
// Código que puede lanzar una IOException
} catch (IOException _) {
System.out.println("Ocurrió un error de E/S.");
}
Aquí, se captura la excepción IOException sin necesidad de referenciarla dentro del bloque catch.
Los patrones anónimos permiten omitir nombres y tipos en patrones de registros cuando no se requiere acceder a ciertos componentes. Esto simplifica la sintaxis y mejora la legibilidad del código al desestructurar objetos.
record Punto(int x, int y) {}
Punto punto = new Punto(5, 10);
if (punto instanceof Punto(int _, int y)) {
System.out.println("Coordenada y: " + y);
}
En este ejemplo, se omite el nombre de la variable para la coordenada x, ya que no es necesaria, mientras que se accede directamente a la coordenada y.
La introducción de variables y patrones anónimos en Java 22 representa un avance significativo hacia una sintaxis más concisa y expresiva, alineada con las necesidades modernas de desarrollo.