Tim Peierls tim at
Sat Sep 22 18:12:29 PDT 2012

Works for me.

Btw, the syntax I use for default values currently:

  Result result = stream.findFirst(pred).or(defaultResult);

I like that.


On Sat, Sep 22, 2012 at 1:55 PM, Joe Bowbeer <joe.bowbeer at> wrote:

> On Sat, Sep 22, 2012 at 10:39 AM, Brian Goetz wrote:
>> 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.)
> I like these rules.  The default-bearing version(s) can be emulated with
> the Option version with an additional Option2Default transform stage, so I
> would like to avoid the default-bearing version(s) if we can get away with
> it.

More information about the lambda-libs-spec-observers mailing list