Calling get()
on an Optional
that is not present will result in a
NoSuchElementException
.
This check detects cases where get()
is called when the optional is definitely
not present, e.g.:
if (!o.isPresent()) {
return o.get(); // this will throw a NoSuchElementException
}
if (o.isEmpty()) {
return o.get(); // this will throw a NoSuchElementException
}
These cases are almost definitely bugs; the intent may have been to invert the test:
if (o.isPresent()) {
return o.get();
}
Suppress false positives by adding the suppression annotation @SuppressWarnings("OptionalNotPresent")
to the enclosing element.