null assigned to an Optional variable or returned from a method returning Optional.
It's recommended that you use Optional.empty() (or Optional.absent() for Guava) to denote an empty value.
Example:
Optional<Integer> foo(boolean flag) {
return flag ? Optional.of(42) : null;
}
After the quick-fix is applied:
Optional<Integer> foo(boolean flag) {
return flag ? Optional.of(42) : Optional.empty();
}
Configure the inspection:
Use the Report comparison of Optional with null option to also report comparisons like optional == null. While in rare cases (e.g. lazily initialized
optional field) this might be correct, optional variable is usually never null, and probably optional.isPresent() was
intended.
New in 2017.2