Joe,
Thanks very much!

        Josh

On Tue, Oct 13, 2009 at 11:12 AM, Joseph D. Darcy <joe.da...@sun.com> wrote:

> Joshua Bloch wrote:
>
>> Joe,
>>
>> Hi.  I've attached a file containing the methods and a JTReg "basic test"
>> for inclusion in your BasicObjectTests.  I adhered to your style, for easy
>> integration. If you could take it from here, I'd be ever so grateful.
>>
>
> Will do.
>
> Cheers,
>
> -Joe
>
>
>>    Thanks,
>>
>>    Josh
>>
>>
>> On Thu, Oct 8, 2009 at 6:21 PM, Joe Darcy <joe.da...@sun.com <mailto:
>> joe.da...@sun.com>> wrote:
>>
>>
>>        I strongly suggest that you do add these two methods:
>>
>>           /**
>>            * Checks that the specified object reference is not {...@code
>>        null}. This
>>            * method is designed primarily for doing parameter
>>        validation in methods
>>            * and constructors, as demonstrated below:
>>            * <pre>
>>            * public Foo(Bar bar) {
>>            *     this.bar = Objects.nonNull(bar);
>>            * }
>>            * </pre>
>>            *
>>            * @param obj the object reference to check for nullity
>>            * @return {...@code obj} if not {...@code null}
>>            * @throws NullPointerException if {...@code obj} is {...@code 
>> null}
>>            */
>>           public static <T> T nonNull(T obj) {
>>               if (obj == null)
>>                   throw new NullPointerException();
>>               return obj;
>>           }
>>
>>           /**
>>            * Checks that the specified object reference is not {...@code
>>        null} and
>>            * throws a customized {...@link NullPointerException} if it
>>        is. This method
>>            * is designed primarily for doing parameter validation in
>>        methods and
>>            * constructors with multiple parameters, as demonstrated
>>        below:
>>            * <pre>
>>            * public Foo(Bar bar, Baz baz) {
>>            *     this.bar = Objects.nonNull(bar, "bar must not be null");
>>            *     this.baz = Objects.nonNull(baz, "baz must not be null");
>>            * }
>>            * </pre>
>>            *
>>            * @param obj     the object reference to check for nullity
>>            * @param message detail message to be used in the event
>>        that a {...@code
>>            *                NullPointerException} is thrown
>>            * @return {...@code obj} if not {...@code null}
>>            * @throws NullPointerException if {...@code obj} is {...@code 
>> null}
>>            */
>>           public static <T> T nonNull(T obj, String message) {
>>               if (obj == null)
>>                   throw new NullPointerException(message);
>>               return obj;
>>           }
>>
>>        They do a great job reducing the verbiage in validity-checking
>>        of arguments that must not be null.
>>
>>
>>    I've filed bug 6889858 "Add nonNull methods to java.util.Objects" for
>>    these last two methods.  If you want to finish off the engineering
>>    need for a changeset, some light tests, etc., I'll file the
>>    Sun-internal paperwork for these.
>>
>>
>

Reply via email to