No hace mucho, viendo código java por internet, me encontré con una expresión como esta:
if ( "".equals(variableString) )
...
Lo primero me llamó la atención lo curioso de ella. Se puede poner una cadena entre comillas... y llamar a métodos de la clase String con ella.
Luego, puestos a mirar el porqué se hace esa curiosa llamada cuando la forma aparentemente habitual es esta otra
if ( variableString.equals("") )
...
se me ocurrió el posible motivo. Muchas veces esa variableString nos viene como parámetro de un método o vete tú a saber de dónde, por lo que puede ser null. La llamada a equals() dará una excepción en ese caso. Para evitarlo, el if se hace más complejo
if ( (variableString != null) && (variableString.equals("")) )
...
debiendo, además, fiarnos de que el compilador va a ser listo y cuando comprueba que la primera condición no se cumple no se molesta en comprobar la segunda. Normalmente el compilador es listo y lo hace así. De todas formas, para no tener que fiarse, el if todavía es más peor
if (variableString != null)
if (variableString.equals(""))
...
Sin embargo, haciéndolo con el "".equals(variableString), se evita esa comprobación adicional de que no sea null y esa confianza ciega en el compilador.
16 noviembre 2006
Suscribirse a:
Enviar comentarios (Atom)
2 comentarios:
Te recomiendo que leas. Effective Java Programming Language Guide. Es solo un consejo. :D
Tienes razón, esto de ponerse a programar a lo loco, sin leer libros de java, no puede llevar a nada bueno. ;-)
Se bueno.
Publicar un comentario