Brian Goetz brian.goetz at oracle.com
Mon Jan 17 05:26:05 UTC 2011

> I still don't like checkNonNull.  It checks whether its argument is
> non-null, but then what does it do?  Throw an exception if it is
> non-null?  Throw an exception if it isn't?  Do something else?
> My aversion to checkNonNull naming pattern comes from experience.  Long,
> long ago in a code base far, far away I wrote a big set of unit tests
> using this pattern.  Coming back to it months later I had to read the
> code very closely and keep reminding myself that the checkFoo procedures
> were ensuring the Foo condition rather ensuring nonFoo.

I see your point now.  Perhaps you'd prefer requireNonNull() for the 
throwing version?

   public void fooWrapper(String s, String t) {
      foo(requireNonNull(s), requireNonNull(t));

I get your point about maybe we should just remove this, but I do think 
that a method that acts on all object references ignorant of the 
reference type, fits within the mission of juO.

More information about the core-libs-dev mailing list