Joe,<div><br></div><div>Thanks very much!</div><div><br></div><div>        Josh<br><br><div class="gmail_quote">On Tue, Oct 13, 2009 at 11:12 AM, Joseph D. Darcy <span dir="ltr"><<a href="mailto:Joe.Darcy@sun.com">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 class="im">Joshua Bloch wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Joe,<br>
<br>
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.<br>

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

<br>
<br>
        I strongly suggest that you do add these two methods:<br>
<br>
           /**<br>
            * Checks that the specified object reference is not {@code<br>
        null}. This<br>
            * method is designed primarily for doing parameter<br>
        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<br>
        null} and<br>
            * throws a customized {@Link NullPointerException} if it<br>
        is. This method<br>
            * is designed primarily for doing parameter validation in<br>
        methods and<br>
            * constructors with multiple parameters, as demonstrated<br>
        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<br>
        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<br>
        of arguments that must not be null.<br>
<br>
<br>
    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<br>
    need for a changeset, some light tests, etc., I'll file the<br>
    Sun-internal paperwork for these.<br>
<br>
</div></div></blockquote>
<br>
</blockquote></div><br></div>