honeybadger_execute:
Eu estou usando a verificação de parâmetros de entrada com o clichê java como esta no topo do método:
public static Boolean filesExist(String file1, String file2, String file3 ... ) {
if (file1 == null || file2 == null || file3 == null ||...) {
throw new IllegalArgumentException();
}
if (another_param == null) {
throw new NullPointerException();
}
}
No entanto, eu estava lendo sobre opcionais de Java 8 e percebeu que poderia fazer algo parecido com isto em vez disso:
Optional.ofNullable(file1).orElseThrow(IllegalArgumentException::new);
Optional.ofNullable(file2).orElseThrow(IllegalArgumentException::new);
Optional.ofNullable(another_param).orElseThrow(NullPointerException::new);
...
Então, minha pergunta é se existe alguma desvantagem de fazê-lo da segunda maneira, sinto que parece um pouco mais limpo para mim.
Hulk:
Para validação de entrada, uso Objects.requireNonNull em vez disso:
public static Boolean filesExist(String file1, String file2, String file3 ... ) {
Objects.requireNonNull(file1);
Objects.requireNonNull(file2, "custom message");
}
É mais concisa, comunica a intenção mais clara e não cria um adicional Optional
objeto. Ele joga um NullPointerException
, no entanto.