On 10/06/2015 04:11 PM, Paul Benedict wrote:
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.

The extra functionality of such function is that it can be used as an in-line expression. Ternary test requires to evaluate 1st argument twice or it can't be an expression:

T x = expression that is costly to compute;
(x == null) ? y : x

vs.

nullValue(expression that is costly to compute, y)


You can always compose:

nonNull(nullValue(x, y))


Regards, Peter

P.S. nullValue is my suggestion for the name (Oracle DB uses NVL(x, y))

P.P.S Current alternative is also: Optional.ofNullable(x).orElse(y)




Cheers,
Paul

On Tue, Oct 6, 2015 at 9:06 AM, Roger Riggs <roger.ri...@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.ri...@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




Reply via email to