What the existing code does would seem to be irrelevant. What is important is deciding what the correct semantics should be for a core method on Objects.
If there a desperate need for the webrev semantics, how about two methods? firstNonNull(a, b) - result must not be null firstOrElse(a, b) - result is null only is b is null (although I struggle to see much point in the latter) Stephen On 6 October 2015 at 15:09, Roger Riggs <[email protected]> wrote: > Hi Stephen, > > Guava's firstNonNull is a useful semantic, but would not be a drop in > replacement for existing code which > would need to be examined for behavioral changes due to possibly throwing an > exception. > So perhaps the nonNullorElse name would be more accurate. > > Thanks, Roger > > > > On 10/6/2015 10:00 AM, Stephen Colebourne wrote: >> >> Guava uses firstNonNull(a, b). It ensures that the result is never >> null, by checking that b is not null. >> I think the semantics of Guava's method is correct. I tend to think >> the method name isn't bad either. >> >> Calling it nonNull(Object,Object) clashes with the existing >> nonNull(Object) method. Those two have nothing much to do with each >> other. >> >> Stephen >> >> >> On 6 October 2015 at 14:43, Roger Riggs <[email protected]> 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 >>> >
