我想用
java.util.Optional.orElseThrow()
使用Exception类型请求构造函数参数。像这样:
orElseThrow(MyException::new(someArgument)) // obviously NOT working
有没有办法创建一个传递我的参数值的供应商?
答案 0 :(得分:435)
不确定。 orElseThrow(() -> new MyException(someArgument))
。
答案 1 :(得分:21)
您似乎只能从方法orElseThrow
中抛出RuntimeException。否则,您将收到MyException cannot be converted to java.lang.RuntimeException
答案 2 :(得分:6)
optionalUsers.orElseThrow(() -> new UsernameNotFoundException("Username not found"));