Em Java, NullPointerException (NPE) é como cair num genjutsu inesperado — paralisante, confuso e difícil de rastrear.
Para evitar esse tipo de armadilha, Java introduziu o Optional, uma classe que expressa explicitamente:
“Este valor pode existir… ou não.”
Com isso, o dev não usa null sem querer, e o código fica mais seguro, claro e previsível.
É um container que pode ou não conter um valor.
Em vez de retornar null, você retorna:
Optional.empty() → vazioOptional.of(valor) → valor garantidoOptional.ofNullable(valorPossivelmenteNulo) → pode ser nulonull é invisível, silencioso e perigoso:
O Optional deixa a intenção explícita: