Eu gostaria de usar
java.util.Optional.orElseThrow()
com um tipo de exceção que solicita um parâmetro construtor. Algo assim:
.orElseThrow(MyException::new(someArgument)) // obviously NOT working
Existe uma maneira de criar um fornecedor que transmita meu valor de argumento?
java
java-8
java-stream
mdo
fonte
fonte
orElseThrow(() -> new MyException(someArgument))
?Respostas:
Certo.
fonte
Parece que você pode jogar única RuntimeException do método
orElseThrow
. Caso contrário, você receberá uma mensagem de erro comoMyException cannot be converted to java.lang.RuntimeException
Atualização : - Esse era um problema com uma versão mais antiga do JDK. Não vejo esse problema nas versões mais recentes.
fonte
Optional
groovy. Tentando athrow Exception
partir de um fechamento groovy, mas falhoujava.lang.reflect.UndeclaredThrowableException
, alterando para umRuntimeException
fixo.Optional.orElseThrow
qual diz que você pode lançar umThrowable
que significa umError
ou qualquerException
.fonte