Nulls
Brian Goetz
brian.goetz at oracle.com
Sat Sep 22 10:39:41 PDT 2012
This is a pretty simple (maybe simpler) rule:
- Streams are completely null-oblivious (we don't treat them specially
at all)
- Option is null-hostile.
The Stream just passes values along, null or not, whether it be to
user-supplied lambdas, the Option ctor, the add() method of a collection
provided to into(), etc; if that recipient can't handle it, it blows up
there. If that recipient wants to ignore nulls, that's OK too -- it's
outside of the Streams API spec. Then this mostly becomes a property of
Optional. (And, if we provide a default-bearing version too, if people
want the null, they can use the other version.)
On 9/22/2012 1:16 PM, Doug Lea wrote:
> On 09/22/12 13:04, Brian Goetz wrote:
>
>> I would rather not punish everyone because some idiot puts nulls in a
>> collection
>
> Unless that punishment is reduced to essentially nothing
> (even (especially?) if it leads to even worse punishment for offenders).
>
> Remember that JVMs must do null checks all the time anyway.
> Keeping track of whether you've even seen one, and thus must
> throw away and/or repack a destination seems too cheap to
> stand in the way of having a nicer rule.
>
> -Doug
>
More information about the lambda-libs-spec-observers
mailing list