First round of java.util.Objects for code review (bug 6797535)
Joshua Bloch
jjb at google.com
Tue Oct 13 18:40:46 UTC 2009
Joe,
Thanks very much!
Josh
On Tue, Oct 13, 2009 at 11:12 AM, Joseph D. Darcy <Joe.Darcy at 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.Darcy at sun.com <mailto:
>> 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/20091013/3b2c3c84/attachment.html>
More information about the core-libs-dev
mailing list