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:

1
2
3
4
5
6
7
8
9
10
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:

1
2
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:

1
2
3
4
5
6
7
8
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í:

1
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:

Author

Francisco Collao

Posted on

2011-01-20

Updated on

2025-11-01

Licensed under

Comentarios