【发布时间】:2021-07-15 10:07:08
【问题描述】:
在“可选”源代码中,我找到了这个函数:
public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X {
if (value != null) {
return value;
} else {
throw exceptionSupplier.get();
}
}
我的问题是,如果我将功能更改为这个,它看起来就像工作一样
public <X extends Throwable> T orElseThrow(Supplier<X> exceptionSupplier) throws X {
if (value != null) {
return value;
} else {
throw exceptionSupplier.get();
}
}
有人知道原因吗?
【问题讨论】:
-
嗯,有区别。您的建议将无法采用
Supplier<ChildException>,它会在其签名中包含ChildException时抛出throws ParentException。
标签: java wildcard optional supplier