blob: 036d7d86b2626abec01859a37917b0cfc2fa5585 [file] [log] [blame] [view] [edit]
Passing a literal `null` to an `Optional` accepting parameter is likely a bug.
`Optional` is already designed to encode missing values through a non-`null`
instance.
```java
Optional<Integer> double(Optional<Integer> i) {
return i.map(i -> i * 2);
}
Optional<Integer> doubled = double(null);
```
```java
Optional<Integer> doubled = double(Optional.empty());
```
This is a scenario that can easily happen when refactoring code from accepting
`@Nullable` parameters to accept `Optional`s. Note that the check will not match
if the parameter is explicitly annotated `@Nullable`.