Java7: null-safe y null-default
Seguramente les ha pasado y mucho que tienen que llenarse de validaciones contra NullPointerException cuando los métodos retornan null, hay una propuesta para poder manejar este tipo de problemas. Veamos uno ejemplos:
Null-Default
Hoy en dia:
String maybeNull = metodoNull(); if (null == maybeNull) { maybeNull="Ahora no es null"; } // Otra Opcion String nullVar = metodoNull(); nullVar = (nullVar != null ? nullVar : "Ahora no es null");
Ahora la propuesta es la siguiente:
String maybeNull = metodoMaybeNull(); maybeNull = maybeNull ?: "Ahora no es null";
Como verán nos ahorramos unas cuantas líneas de código. Ahora veamos el otro esquema
Null-safe
Hoy en dia:
String result = null;
Foo foo = getFooMayBeNull();
if (foo != null) {
Bar bar = foo.getBarMayBeNull();
if (bar != null) {
result = bar.getResult();
}
}
Con la propuesta de null-safe quedaría así:
String result = getFooMayBeNull()?.getBarMayBeNull()?.getResult();
Esto hasta el dia de hoy seguía en propuesta y por lo que veo en las Características de Java7 no viene, así que a esperar. (Estoy bajando el jdk7 para probar, luego updates)
Estas modificaciones al lenguaje (sintaxis) vienen de los operadores que tiene Goovy.
Más información sobre esta propuesta de mejora al lenguaje en:
- Propuesta en google docs
- Blog de Stephen Colebourne
- Blog de Jacek
- Operadores de Groovy
- Operadores de Fantom