Le 16/11/2009 00:48, Martin Buchholz a écrit :
On Sat, Nov 14, 2009 at 20:46, David Holmes - Sun Microsystems
<david.hol...@sun.com <mailto:david.hol...@sun.com>> 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
Do you want to say something like "I need a closure here" :)
Rémi
themselves ??? Compared to
defaultIfNull(obj, otherObj)
you don't even save any keystrokes (and this is with a static import)!
David Holmes