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:
 � � * 

 � � * public Foo(Bar bar) {
 � � * � � this.bar = Objects.nonNull(bar);
 � � * }
 � � * 

 � � *
 � � * @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 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:
 � � * 

 � � * 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");
 � � * }
 � � * 

 � � *
 � � * @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 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.

">

(original) (raw)

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@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:
� � \*

� � \* public Foo(Bar bar) {
� � \* � � this.bar = Objects.nonNull(bar);
� � \* }
� � \*

� � \*
� � \* @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 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:
� � \*

� � \* 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");
� � \* }
� � \*

� � \*
� � \* @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 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.