Con Java 8 podemos usar los opcionales (Optionals
) para evitar
en cierta medida (si se usan bien) los NullPointerException
.
En este caso por ejemplo, una llamada que puede devolver null
se encapsula en el opcional:
if (hashOps.hasKey("calculatedAt",date)) {
return Optional.of((String) hashOps.get("calculatedAt",date));
}
else {
return Optional.empty();
}
Aunque es correcto en realidad el uso del opcional en realidad lo que quiere es, no tanto evitar la excepción(*) sino mejorar la legibilidad del código y hacerlo más claro así que es mucho mejor así:
return Optional.ofNullable((String) hashOps.get("calculatedAt",date));
Si el elemento es nulo el opcional envuelve un elemento vacio.
(*) también, pero digo no tanto porque si no usas bien
el opcional tendrás en lugar del NPE un NoSuchElement
)