On Sat, Nov 14, 2009 at 20:46, David Holmes - Sun Microsystems <
[email protected]> wrote:
> Paul,
>
> Paul Benedict said the following on 11/15/09 11:28:
>
> I would like to propose adding this method:
>>
>> /**
>> * Selects the object if not {...@code null}; otherwise fallsback to the
>> * specified default object.
>> *
>> * @param object the object to test
>> * @param defaultObject the default object
>> * @return the object if not {...@code null}; otherwise the default object
>> */
>> public static Object defaultIfNull(Object object, Object defaultObject) {
>> return (object != null) ? object : defaultObject;
>> }
>>
>
> I don't get it. Why would anyone need the above when they can write:
>
> obj != null ? obj : otherObj
>
The obvious reason is to save creation of a temp variable
Some<Really<Long<Java<Type<Here>>>>> tmp = longExpression;
return tmp != null ? tmp : defaultValue;
But I'm not in favor of this proposal either.
The biggest problem is that you want
defaultObject to be an expression
that only gets evalutated if tmp == null.
And that suggests adding some kind of syntactic abstraction
that I would like to use myself, but is not
in the spirit of Java.
Martin
> themselves ??? Compared to
>
> defaultIfNull(obj, otherObj)
>
> you don't even save any keystrokes (and this is with a static import)!
>
> David Holmes
>
>