(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've filed bug 6889858 "Add nonNull methods to java.util.Objects" for
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.
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.