4 ms·
The thing is that people usually don't have a lot of code to handle the null case, so having optional where you can easily chain the happy case often offers a b
by Zababa 5y ago
The thing is that people usually don't have a lot of code to handle the null case, so having optional where you can easily chain the happy case often offers a better experience. It also allows you to differentiate when people will return null for nothing, or when they will return an empty object. I know that in the codebase I work with, people use both. With Optional, you don't have that problem.
- shawnz 5y agoWhy not just chain the happy case by ignoring nulls, and let any potential NullPointerException bubble up to the point in the code where you would have had an "Optional.orElse" or whatever? Isn't that often just as easy? If you want it to be explicit then you could just add "@throws NullPointerException" to your javadoc. And of course having Optional in your type signature doesn't guarantee you'll never return empty objects (or even null).
- valenterry 5y agoBecause then you cannot differentiate anymore between "NullPointerException as a bug" or "NullPointerException as a feature". E.g. you might want to return the streetnumber of a user's address. When a NPE is thrown, was it because there is a bug somewhere in the code or because the user's address has no street number? With Optional, it is clear: there was no street number.