Optional require(s) NonNull
Boaz Nahum
boaznahum at gmail.com
Mon Oct 29 09:33:46 PDT 2012
I can only blame my poor English.
Lets forget the 'philosophic' first part of my question.
the second part asks: According to current implementation in b62,
'this.present' is false i.f.f 'this.value' is null --> 'this.present' ==
(this.value != null ). So why we need 'this.present' ?
If you allow me insist of the first part - Why won't allow me to create a
*present* Optional with null value ?
On Mon, Oct 29, 2012 at 5:15 PM, Brian Goetz <brian.goetz at oracle.com> wrote:
> This constructor is for creating a *present* Optional. You use
> Optional.empty() to create an *empty* optional.
>
> On Oct 29, 2012, at 11:02 AM, Boaz Nahum wrote:
>
> > I thought I understand Optional till I read the implementation:
> >
> > public Optional(T value) {
> > this.value = Objects.requireNonNull(value);
> > this.present = true;
> > }
> >
> > Why 'requireNonNull' non null ? If null is singular value why we need
> this
> > class ? just for 'orElse..' methods ?
> >
> > If if value can't be null why we need the 'present' field ?
> >
> > My hopes where that I can use Optional to return a null as a legal value.
> >
> > Thanks
> > Boaz
> >
>
>
More information about the lambda-dev
mailing list