在单行中调用 Optional#isPresent() 被报告为未调用
2022-09-03 05:52:39
我运行SonarQube来检查我的代码,我发现了一个我不理解报告的错误的情况。
我的代码是:
private static final int BASE_ID = 100_000_000;
private boolean isValidId(Id id) {
return id.asInteger().isPresent() && id.asInteger().get() >= BASE_ID;
}
该方法返回asInteger
Optional<Integer>
我从声纳库贝得到的错误是在返回行中。Call "Optional#isPresent()" before accessing the value.
我知道代码是可以的,因为如果第一部分是假的,则第二部分将不会执行。我知道这可以用a来解决,但我更喜欢这样。if
.filter(..).isPresent()
任何想法为什么会发生这种情况?