Java 8 方法参考:提供能够提供参数化结果的供应商
2022-08-31 05:11:46
我想使用
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 的问题。我在最新版本中没有看到此问题。