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