<div class="gmail_quote">On Wed, Oct 14, 2009 at 3:38 AM, Stephen Colebourne <span dir="ltr"><<a href="mailto:scolebourne@joda.org">scolebourne@joda.org</a>></span> wrote:</div><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
While I agree that the nonNull methods below are useful and should be in the JDK, I question whether they should be on j.u.Objects.<br>
<br>
I believe that there is a whole category of methods to pre-validate the arguments of a method, such as Commons Lang Validate, or Google Prevalidate.<br></blockquote><div><br></div><div>[s/Prevalidate/Preconditions/]</div>
<div><br></div><div>I'm in complete agreement, of course.  In Google, checkNotNull() is certainly the most popular of our Preconditions methods, but checkArgument() is fully half as popular, and checkState() half in turn (meaning it's still used thousands upon thousands of times).  We also have similar methods to throw IndexOutOfBoundsExceptions when appropriate, which are not needed nearly as frequently, but are a real relief to use when you do need them (many JDK methods could make use of them, especially since Martin has just finished optimizing the heck out of them for our next RC (1.0-rc4)).</div>
<div><br></div><div>checkArgument() and checkState() don't let developers do anything they can't already do with if/throw, but I very strongly believe we have significantly more of our codebase doing proper precondition checking because of this small amount of paving we applied to that path.</div>
<div><br></div><div>Just some more input to consider.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><a href="http://commons.apache.org/lang/apidocs/org/apache/commons/lang/Validate.html" target="_blank">http://commons.apache.org/lang/apidocs/org/apache/commons/lang/Validate.html</a><br>

<a href="http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/base/Preconditions.html" target="_blank">http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/base/Preconditions.html</a><br>

<br></blockquote><div> </div></div>-- <br>Kevin Bourrillion @ Google<br>internal:  <a href="http://go/javalibraries">http://go/javalibraries</a><br>external: <a href="http://guava-libraries.googlecode.com">guava-libraries.googlecode.com</a><br>
<br>