我想用
java.util.Optional.orElseThrow()
具有要求构造函数参数的异常类型。像这样的东西:
.orElseThrow(MyException::new(someArgument)) // obviously NOT working
有没有办法创建一个传递我的参数值的供应商?
我想用
java.util.Optional.orElseThrow()
具有要求构造函数参数的异常类型。像这样的东西:
.orElseThrow(MyException::new(someArgument)) // obviously NOT working
有没有办法创建一个传递我的参数值的供应商?
当然。
.orElseThrow(() -> new MyException(someArgument))
看来您只能从方法中抛出 RuntimeException orElseThrow
。否则,您将收到一条错误消息,例如 MyException cannot be converted to java.lang.RuntimeException
更新:- 这是旧版本 JDK 的问题。我在最新版本中没有看到这个问题。
optionalUsers.orElseThrow(() -> new UsernameNotFoundException("Username not found"));