【发布时间】:2020-12-10 17:36:33
【问题描述】:
我的项目刚跑了声纳扫描,发现了1个报告案例,分别是:
Sonar 建议使用 Java 8 API 而不是 Guava API。
在某些情况下,我可以更改 API,但我发现在某些情况下,我找不到对应的 Java 8 替换 Guava。
例如:
import java.util.Optional;
import static com.google.common.base.Preconditions.checkNotNull;
Optional<String> proxyHost;
this.proxyHost = checkNotNull(proxyHost, "proxyHost is required")
.orNull(); // this line will having compilation error orNull method undefined.
我正在尝试在 Java 8 API 中找到一个替代品来替代 Guava checkNotNull,但看起来 Java 8 没有它。而这只是其中的一个例子。
我也找不到以下 sn-p 的替代品:
import com.google.common.collect.Iterables.tryFind;
import com.google.common.base.Suppliers;
等等。
我可以在某处找到 Java 8 替代 API 吗?或者我应该在声纳扫描中将此案例掩盖为误报?
【问题讨论】:
-
当你使用 Optional 时,你可以像
proxyHost.orElse(null)或proxyHost.orElseThrow(...)那样做
标签: java api java-8 sonarqube guava