First round of java.util.Objects for code review (bug 6797535)

Joshua Bloch jjb at google.com
Tue Oct 13 06:38:04 UTC 2009


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.

    Thanks,

    Josh

On Thu, Oct 8, 2009 at 6:21 PM, Joe Darcy <Joe.Darcy at 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.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/core-libs-dev/attachments/20091012/9ccee837/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: NonNull.java
Type: application/octet-stream
Size: 3415 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/core-libs-dev/attachments/20091012/9ccee837/NonNull.java>


More information about the core-libs-dev mailing list