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

Paul Sandoz paul.sandoz at oracle.com
Fri Oct 9 07:59:22 UTC 2015


> On 9 Oct 2015, at 02:31, John Rose <john.r.rose at oracle.com> wrote:
> 
> It may be instructive to link nulls to Optionals by encoding null-ness using Optional:
> 
> <T> T nonNullElse(T x, T y) := Optional.ofNullable(x).orElseGet(() -> Optional.ofNullable(y).get())
> 

And with the new Optional.or [*] to be added soon the above could be expressed as:

  :=  Optional.ofNullable(x).or(() -> Optional.ofNullable(y))

Paul.

[*] i am searching for a better name, but don’t want to derail this thread with such a discussion.

> <T> T nonNullElseGet(T x, Supplier<T> y) := Optional.ofNullable(x).orElseGet(() -> Optional.ofNullable(y.get()).get())
> 





More information about the core-libs-dev mailing list