web-dev-qa-db-ja.com

Java 8メソッド参照:パラメータ化された結果を提供できるサプライヤを提供します

使いたい

Java.util.Optional.orElseThrow()

コンストラクタパラメータを要求するException型を指定します。このようなもの:

orElseThrow(MyException::new(someArgument)) // obviously NOT working

私の引数値を渡すSupplierを作成する方法はありますか?

233
mdo

もちろんです。 orElseThrow(() -> new MyException(someArgument))

443
Louis Wasserman

メソッドorElseThrowからRuntimeExceptionのみをスローできるようです。それ以外の場合は、MyException cannot be converted to Java.lang.RuntimeExceptionのようなエラーメッセージが表示されます。

21
Manu
optionalUsers.orElseThrow(() -> new UsernameNotFoundException("Username not found"));
6
Ashish Pushp