Je voudrais utiliser
Java.util.Optional.orElseThrow()
avec un type d'exception qui demande un paramètre de constructeur. Quelque chose comme ça:
orElseThrow(MyException::new(someArgument)) // obviously NOT working
Existe-t-il un moyen de créer un fournisseur qui transmet la valeur de mon argument?
Sûr. orElseThrow(() -> new MyException(someArgument))
.
Il semble que vous ne pouvez lancer que RuntimeException à partir de la méthode orElseThrow
. Sinon, vous obtiendrez un message d'erreur du type MyException cannot be converted to Java.lang.RuntimeException
optionalUsers.orElseThrow(() -> new UsernameNotFoundException("Username not found"));