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)