Java Opcionais para verificar parâmetros de entrada

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 Optionalobjeto. Ele joga um NullPointerException, no entanto.

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=231387&siteId=1
Recomendado
Clasificación