RFR 9: 8138963 : java.lang.Objects new method to default to non-null

Roger Riggs roger.riggs at oracle.com
Sat Oct 31 20:29:16 UTC 2015


Hi,

And, going back nearly to the beginning of the thread, some folks are 
familiar with

T firstNonNull(T, T)   proposed from Guava.

But since the exercise was turned into simplify:  (x != null) ? x : 
requireNonNull(y);

My favorite at this point is to identify the thread as a failed attempt 
and remove it.

?: is going to be easier to type; and might even get some help from the IDE.

Roger

p.s.  I occasionally work with an IDE but never exclusively when developing
across 4 OS's and sometime remotely.  xemacs and vi are the most 
portable and reliable.


On 10/31/15 2:06 PM, John Rose wrote:
> OK, it's Halloween, so a certain amount of bikeshed vandalism might be allowable.
>
> I will to select my spray-paint color from the following paint-store aisle:
>    http://www.thesaurus.com/browse/deter <http://www.thesaurus.com/browse/deter>
>
> There's something in there to charm everyone.  Personally, I would fall for:
>
>>   <T> T checkNull(T, T)
>>   <T> TcheckNullElseGet(T, Supplier<? extends T>)
> The trick is to remember that "check" can be a synonym for "deter" as in hockey.
> The treat is that "checkNull" reminds every Java programmer of "null check".  Plus it's not taken yet.
> (Gonna have to shower after this is over.)
>
> — John
>
> On Oct 31, 2015, at 12:51 PM, Vitaly Davidovich <vitalyd at gmail.com> wrote:
>> How about Objects.ifNull? Short and sweet.  I don't like requireXXX for this semantic either.
> On Oct 31, 2015, at 4:17 AM, Remi Forax <forax at univ-mlv.fr> wrote:
>> what about:
>>   <T> T coalesceNull(T, T)
>>   <T> T coalesceNullGet(T, Supplier<? extends T>)
> On Oct 31, 2015, at 12:01 AM, John Rose <john.r.rose at oracle.com> wrote:
>
>> P.S. Going for a third way and starting a new family of methods ("notNull*", "stopNull", etc.) would make me sad too, since we already have null-stopping API points.  I'd secretly welcome Objects.or(a, b, c), etc. (coupled with "require*" to throw NPEs), but only because "OR" is a sort of logical in-joke for ex-Lispers.




More information about the core-libs-dev mailing list