Pattern matching para instanceof es una característica introducida en Java 14 como una mejora para escribir código más conciso y seguro al realizar comprobaciones de tipo y conversiones.
Antes de Java 14, verificar si un objeto era de cierto tipo y luego convertirlo requería código repetitivo:
if (obj instanceof String) {
String str = (String) obj;
System.out.println("Longitud: " + str.length());
}
La coincidencia de patrones para `instanceof` elimina la necesidad del casting explícito, reduciendo la repetición:
if (obj instanceof String str) {
System.out.println("Longitud: " + str.length());
}
La coincidencia de patrones se puede usar en estructuras más complejas como `else if`:
public void imprimir(Object obj) {
if (obj instanceof String str) {
System.out.println("Es un String: " + str);
} else if (obj instanceof Integer num) {
System.out.println("Es un Integer: " + num);
} else {
System.out.println("Tipo desconocido");
}
}
La variable resultante solo está disponible dentro del bloque if, lo que evita posibles accesos indebidos:
if (obj instanceof String str) {
System.out.println(str.length()); // Válido
}
System.out.println(str); // Error: No está definido fuera del if
La coincidencia de patrones para instanceof simplifica la escritura de código en Java, haciéndolo más expresivo y seguro. Esta funcionalidad es el primer paso hacia mejoras más avanzadas en la manipulación de tipos en el lenguaje.