public final class Objects extends Object
static utility methods for operating on objects. These utilities include
null-safe or
null-tolerant methods for computing the hash code of an object, returning a string for an object, and comparing two objects.
| Modifier and Type | Method and Description |
|---|---|
static <T> int |
compare(T a, T b, Comparator
Returns 0 if the arguments are identical and
c.compare(a, b) otherwise.
|
static boolean |
deepEquals(Object
Returns
true if the arguments are deeply equal to each other and
false otherwise.
|
static boolean |
equals(Object
Returns
true if the arguments are equal to each other and
false otherwise.
|
static int |
hash(Object
Generates a hash code for a sequence of input values.
|
static int |
hashCode(Object
Returns the hash code of a non-
null argument and 0 for a
null argument.
|
static boolean |
isNull(Object
Returns
true if the provided reference is
null otherwise returns
false.
|
static boolean |
nonNull(Object
Returns
true if the provided reference is non-
null otherwise returns
false.
|
static <T> T |
requireNonNull(T obj)
Checks that the specified object reference is not
null.
|
static <T> T |
requireNonNull(T obj, String
Checks that the specified object reference is not
null and throws a customized
NullPointerException if it is.
|
static <T> T |
requireNonNull(T obj, Supplier
Checks that the specified object reference is not
null and throws a customized
NullPointerException if it is.
|
static String |
toString(Object
Returns the result of calling
toString for a non-
null argument and
"null" for a
null argument.
|
static String |
toString(Object
Returns the result of calling
toString on the first argument if the first argument is not
null and returns the second argument otherwise.
|
public static boolean equals(Objecta, Object b)
true if the arguments are equal to each other and
false otherwise. Consequently, if both arguments are
null,
true is returned and if exactly one argument is
null,
false is returned. Otherwise, equality is determined by using the
equals method of the first argument.
a - an object
b - an object to be compared with
a for equality
true if the arguments are equal to each other and
false otherwise
Object.equals(Object)
public static boolean deepEquals(Objecta, Object b)
true if the arguments are deeply equal to each other and
false otherwise. Two
null values are deeply equal. If both arguments are arrays, the algorithm in
Arrays.deepEquals is used to determine equality. Otherwise, equality is determined by using the
equals method of the first argument.
a - an object
b - an object to be compared with
a for deep equality
true if the arguments are deeply equal to each other and
false otherwise
Arrays.deepEquals(Object[], Object[]) ,
equals(Object, Object)
public static int hashCode(Objecto)
null argument and 0 for a
null argument.
o - an object
null argument and 0 for a
null argument
Object.hashCode()
public static int hash(Object... values)
Arrays.hashCode(Object[]) .
This method is useful for implementing Object on objects containing multiple fields. For example, if an object that has three fields, x, y, and z, one could write:
@Override public int hashCode() {
return Objects.hash(x, y, z);
}
Warning: When a single object reference is supplied, the returned value does not equal the hash code of that object reference. This value can be computed by calling
hashCode(Object).
values - the values to be hashed
Arrays.hashCode(Object[]) ,
List.hashCode()
public static StringtoString(Object o)
toString for a non-
null argument and
"null" for a
null argument.
o - an object
toString for a non-
null argument and
"null" for a
null argument
Object.toString() ,
String.valueOf(Object)
public static StringtoString(Object o, String nullDefault)
toString on the first argument if the first argument is not
null and returns the second argument otherwise.
o - an object
nullDefault - string to return if the first argument is
null
toString on the first argument if it is not
null and the second argument otherwise.
toString(Object)
public static <T> int compare(T a,
T b,
Comparator<? super T> c)
c.compare(a, b) otherwise. Consequently, if both arguments are
null 0 is returned.
Note that if one of the arguments is null, a NullPointerException may or may not be thrown depending on what ordering policy, if any, the Comparator chooses to have for null values.
T - the type of the objects being compared
a - an object
b - an object to be compared with
a
c - the
Comparator to compare the first two arguments
c.compare(a, b) otherwise.
Comparable,
Comparator
public static <T> T requireNonNull(T obj)
null. This method is designed primarily for doing parameter validation in methods and constructors, as demonstrated below:
public Foo(Bar bar) {
this.bar = Objects.requireNonNull(bar);
}
T - the type of the reference
obj - the object reference to check for nullity
obj if not
null
NullPointerException - if
obj is
null
public static <T> T requireNonNull(T obj,
String message)
null and throws a customized
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.requireNonNull(bar, "bar must not be null");
this.baz = Objects.requireNonNull(baz, "baz must not be null");
}
T - the type of the reference
obj - the object reference to check for nullity
message - detail message to be used in the event that a
NullPointerException is thrown
obj if not
null
NullPointerException - if
obj is
null
public static boolean isNull(Objectobj)
true if the provided reference is
null otherwise returns
false.
obj - a reference to be checked against
null
true if the provided reference is
null otherwise
false
Predicate
public static boolean nonNull(Objectobj)
true if the provided reference is non-
null otherwise returns
false.
obj - a reference to be checked against
null
true if the provided reference is non-
null otherwise
false
Predicate
public static <T> T requireNonNull(T obj,
Supplier<String> messageSupplier)
null and throws a customized
NullPointerException if it is.
Unlike the method requireNonNull(Object, String), this method allows creation of the message to be deferred until after the null check is made. While this may confer a performance advantage in the non-null case, when deciding to call this method care should be taken that the costs of creating the message supplier are less than the cost of just creating the string message directly.
T - the type of the reference
obj - the object reference to check for nullity
messageSupplier - supplier of the detail message to be used in the event that a
NullPointerException is thrown
obj if not
null
NullPointerException - if
obj is
null