É verdade que, no meu mundo, há definitivamente pensamentos diferentes, não posso impor "Nunca passar um nulo" porque estou lidando com terceiros incontroláveis, como chamadores de API, registros de banco de dados, ex-programadores etc ... por isso sou paranóico e defensivo nas abordagens . Como você está no Java8 ou posterior, existe uma abordagem um pouco mais limpa do que um if
bloco.
public String foo(@Nullable String mayBeNothing) {
return Optional.ofNullable(mayBeNothing).orElse("Really Nothing");
}
Você também pode lançar alguma exceção trocando .orElse
para
orElseThrow(() -> new Exception("Dont' send a null"))
.
Se você não quiser usar @Nullable, que não adiciona nada funcionalmente, por que não nomear o parâmetro com mayBe...
para que sua intenção seja clara.