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

Paul Benedict pbenedict at apache.org
Tue Oct 6 14:11:23 UTC 2015


If the second value is allowed to be null, then I don't find this new
method useful. What value do you see in it? It doesn't provide any extra
functionality to a simple if-else/ternary test, right? I throw my lot in
with Stephen that the return value must be non-null.


Cheers,
Paul

On Tue, Oct 6, 2015 at 9:06 AM, Roger Riggs <Roger.Riggs at oracle.com> wrote:

> Hi Paul,
>
> Hence the question about the method name.
> It already documents explicitly that the nullDefault value is returned and
> does not restrict the value.
>
> To be a direct replacement for the current code, it should return the 2nd
> value regardless of whether it is null or not.
>
> Roger
>
>
>
>
> On 10/6/2015 9:56 AM, Paul Benedict wrote:
>
> It's quite possible for the second argument to be null. Is that your
> intention? I am not sure it makes sense, but it's not harmful either. I
> recommend you can either (1) explicitly document that's a possibility and
> this method could still return null or (2) prevent it by calling
> requireNonNull.
>
>
> Cheers,
> Paul
>
> On Tue, Oct 6, 2015 at 8:43 AM, Roger Riggs <Roger.Riggs at oracle.com>
> 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