Earlier quoted context omitted.
I love this solution. Now you have two kinds of nulls.
I disagree. The problem with Null in my opinion is that it is the default and can easily be created accidentally. There's nothing inherently wrong with an "absence of value, value" Optional.empty is not null, it's no-value
In our code base this means we have a the rule that Optional is only allowed for returns so we aren't adding 3rd cases all over the place.