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

Roger Riggs Roger.Riggs at Oracle.com
Tue Oct 6 13:58:44 UTC 2015

Hi Ivan,

Easy enough, but I have not surveyed the codebase to see if it would be 
used or is necessary.
Most of the cases I've seen are simple if/then/else or ?: expressions.

Using the Supplier for does have some extra overhead not readily 
observable in the code.
There is precedent for such a method in requireNonNull, where the cost 
of composing/formatting
the exception text can be avoided using a supplier.


On 10/6/2015 9:53 AM, Ivan Gerasimov wrote:
> Hi Roger!
> I didn't notice the message, so first commented in the Jira.
> Would it make sense to also add a variant with the second argument of 
> type Supplier, so that it can be lazily calculated only if needed?
> Something like:
> public static <T> T nonNull(T obj, Supplier<T> nullDefaultSupplier) {
>     return (obj != null) ? obj : nullDefaultSupplier.get();
> }
> Sincerely yours,
> Ivan
> On 06.10.2015 16:43, Roger Riggs wrote:
>> Java.lang.Objects contains a number of convenience methods to make it 
>> easier to handle references that are null.
>> For example, toString(obj, nullDefault),
>> A new method is proposed to return the reference or a default value 
>> if the reference is null.
>>    static <T> T nonNull(T obj, T nullDefault);
>> Alternatives to the method name include
>> nonNullOrElse ( using the java.util.Optional name pattern) or
>> nonNullOrDefault
>> Please review and comment.
>> Webrev:
>>   http://cr.openjdk.java.net/~rriggs/webrev-object-non-null/
>> Issue:
>>   https://bugs.openjdk.java.net/browse/JDK-8138963
>> Thanks, Roger

More information about the core-libs-dev mailing list