Joe,<div><br></div><div>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.</div>
<div><br></div><div>    Thanks,</div><div><br></div><div>    Josh<br><br><div class="gmail_quote">
On Thu, Oct 8, 2009 at 6:21 PM, Joe Darcy <span dir="ltr"><<a href="mailto:Joe.Darcy@sun.com" target="_blank">Joe.Darcy@sun.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
I strongly suggest that you do add these two methods:<br>
<br>
    /**<br>
     * Checks that the specified object reference is not {@code null}. This<br>
     * method is designed primarily for doing parameter validation in methods<br>
     * and constructors, as demonstrated below:<br>
     * <pre><br>
     * public Foo(Bar bar) {<br>
     *     this.bar = Objects.nonNull(bar);<br>
     * }<br>
     * </pre><br>
     *<br>
     * @param obj the object reference to check for nullity<br>
     * @return {@code obj} if not {@code null}<br>
     * @throws NullPointerException if {@code obj} is {@code null}<br>
     */<br>
    public static <T> T nonNull(T obj) {<br>
        if (obj == null)<br>
            throw new NullPointerException();<br>
        return obj;<br>
    }<br>
<br>
    /**<br>
     * Checks that the specified object reference is not {@code null} and<br>
     * throws a customized {@Link NullPointerException} if it is. This method<br>
     * is designed primarily for doing parameter validation in methods and<br>
     * constructors with multiple parameters, as demonstrated below:<br>
     * <pre><br>
     * public Foo(Bar bar, Baz baz) {<br>
     *     this.bar = Objects.nonNull(bar, "bar must not be null");<br>
     *     this.baz = Objects.nonNull(baz, "baz must not be null");<br>
     * }<br>
     * </pre><br>
     *<br>
     * @param obj     the object reference to check for nullity<br>
     * @param message detail message to be used in the event that a {@code<br>
     *                NullPointerException} is thrown<br>
     * @return {@code obj} if not {@code null}<br>
     * @throws NullPointerException if {@code obj} is {@code null}<br>
     */<br>
    public static <T> T nonNull(T obj, String message) {<br>
        if (obj == null)<br>
            throw new NullPointerException(message);<br>
        return obj;<br>
    }<br>
<br>
They do a great job reducing the verbiage in validity-checking of arguments that must not be null.<br>
</blockquote>
<br></div></div>
I've filed bug 6889858 "Add nonNull methods to java.util.Objects" for<br>
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.<br>
<br></blockquote></div></div>