Supongamos que hemos sobrecargado un método en Java de la siguiente manera
public static void metodoSobrecargado(List miscosas) {
}
public static void metodoSobrecargado(String[] miscosas) {
}
Tenemos dos métodos llamados “metodoSobrecargado”, cada uno de ellos acepta un tipo de parámetro distinto e incompatible entre sí.
Ahora supongamos que necesitamos llamar a uno de ellos, pero pasándole null como parámetro. Podríamos intentar esto:
public static void metodoSobrecargado(String[] args) {
metodoSobrecargado( null ); // Falla!!
}
Pero falla estrepitosamente al compilar. Podemos optar por no sobrecargar el método, meterle algún parámetro más a uno de ellos con el fin de poder diferenciarlos o, simplemente, podemos hacer un casting a null para que se adapte al tipo esperado por el método que elijamos, así:
public static void metodoSobrecargado(String[] args) {
metodoSobrecargado( (List)null );
metodoSobrecargado( (String[])null );
}
Puede parecer elemental, pero seguro que más de uno no se lo sabía.
Popularity: 1% [?]















orale, esta chido! no se me hubiera ocurrido
Muy interesante. Nunca he tenido ese problema, pero no sé si en ese caso se me habría ocurrido tan elegante solución. Tomo nota para el futuro.
¡Saludos