In preparation for the arrival of a new class in JDK7 called java.util.Objects
which will contain frequently-written utility methods, Joe Darcy of Sun has put out a request to the OpenJDK core-libs-dev group for ideas on what methods should be contained in this class. InfoQ would like to pass this request along to the wider Java community.
In his initial post, Darcy highlighted a couple of potential methods which could be useful in this class:
- A null-safe
equals(arg1, arg2)
method which returns true if both arguments are null, false if only one is null, andarg1.equals(arg2)
otherwise - A set of
compareTo(arg1, arg2)
methods for all primitive types (int, long, etc)
Some other suggestions came from Andrew John Hughes, including:
toString(arg)
, which would write out via reflection all of the fields inside the object to the returned output string- A utility implementation of the
clone()
method
Martin Buchholz also proposed a null-safe hashCode()
implementation, which would return 0 for a null object.
Stephen Colebourne created a long list of proposed methods for this class, primarily by choosing existing methods from the Apache Commons Lang utility classes. Some of those proposed include:
min(comparable1, comparable2)
andmax(comparable1, comparable2)
, which would be null-safe and which would return the smallest/largest non-null object (or null if both arguments were null)defaultNull(obj, defaultValue)
which would return the defaultValue object if obj was null
What are your thoughts? What methods should be added to java.util.Objects
?