Java 可选.isPresent()的断言出现声纳误报

Java 可选.isPresent()的断言出现声纳误报,java,sonarqube,assert,Java,Sonarqube,Assert,看起来,如果sonar在if语句中没有看到对Optional.isPresent()的精确检查,它会报告一个错误。我有以下代码: 可选myOptional=getMyOptional(); assertTrue(myOptional.isPresent()); String stringFound=myOptional.get(); 因此,我检查了myOptional是否存在。如果它不是AssertionError,则抛出。此检查在org.junit.Assert中完成。不管怎样,声纳不喜欢它

看起来,如果sonar在
if
语句中没有看到对
Optional.isPresent()的精确检查,它会报告一个错误。我有以下代码:

可选myOptional=getMyOptional();
assertTrue(myOptional.isPresent());
String stringFound=myOptional.get();
因此,我检查了
myOptional
是否存在。如果它不是
AssertionError
,则抛出。此检查在org.junit.Assert中完成。不管怎样,声纳不喜欢它或者看不到它。
是声纳虫吗?或者什么是正确的方法来处理检查
可选
s?

如果在
.get()
之前添加“if”条件,则效果良好。同意断言应该也可以。尝试使用
assert(myOptional.isPresent())
first Optional的设计方式是,如果您想要获得一些值,那么为了克服异常,您必须首先使用
isPresent()
进行检查,然后获得一个值,这样它就不是一个bug,而是一个使用它的规则。您只需使用以下命令获取值:
myOptional.ifPresent(someValue->System.out.println(someValue))
@AmmarAli请仔细阅读问题。我理解期权没有问题。我有一个问题:
isPresent
发布了一条谚语:“您的代码显然是正确的。有关SONAR w.r.t误报如何处理该区域的更多详细信息,请参阅:”