This class consists of static
utility methods for operating
on objects, or checking certain conditions before operation. These utilities
include null
-safe or null
-tolerant methods for computing the
hash code of an object, returning a string for an object, comparing two
objects, and checking if indexes or sub-range values are out-of-bounds.
Public Method Summary
static <T> int |
compare(T a, T b, Comparator<? super T> c)
Returns 0 if the arguments are identical and
c.compare(a, b) otherwise. |
static boolean |
deepEquals(Object a, Object b)
Returns
true if the arguments are deeply equal to each other
and false otherwise. |
static boolean | |
static int | |
static int | |
static boolean | |
static boolean | |
static <T> T |
requireNonNull(T obj, String message)
Checks that the specified object reference is not
null and
throws a customized NullPointerException if it is. |
static <T> T |
requireNonNull(T obj, Supplier<String> messageSupplier)
Checks that the specified object reference is not
null and
throws a customized NullPointerException if it is. |
static <T> T |
requireNonNull(T obj)
Checks that the specified object reference is not
null . |
static <T> T |
requireNonNullElse(T obj, T defaultObj)
Returns the first argument if it is non-
null and
otherwise returns the non-null second argument. |
static <T> T |
requireNonNullElseGet(T obj, Supplier<? extends T> supplier)
Returns the first argument if it is non-
null and otherwise
returns the non-null value of supplier.get() . |
static String | |
static String |
Inherited Method Summary
Public Methods
public static int compare (T a, T b, Comparator<? super T> c)
Returns 0 if the arguments are identical and 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.
Parameters
a | an object |
---|---|
b | an object to be compared with a |
c | the Comparator to compare the first two arguments |
Returns
- 0 if the arguments are identical and
c.compare(a, b)
otherwise.
See Also
public static boolean deepEquals (Object a, Object b)
Returns 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.
Parameters
a | an object |
---|---|
b | an object to be compared with a for deep equality |
Returns
true
if the arguments are deeply equal to each other andfalse
otherwise
public static boolean equals (Object a, Object b)
Returns 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.
Parameters
a | an object |
---|---|
b | an object to be compared with a for equality |
Returns
true
if the arguments are equal to each other andfalse
otherwise
See Also
public static int hash (Object... values)
Generates a hash code for a sequence of input values. The hash
code is generated as if all the input values were placed into an
array, and that array were hashed by calling Arrays.hashCode(Object[])
.
This method is useful for implementing Object.hashCode()
on objects containing multiple fields. For
example, if an object that has three fields, x
, y
, and z
, one could write:
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 @Override public int hashCode() { return Objects.hash(x, y, z); }
hashCode(Object)
.Parameters
values | the values to be hashed |
---|
Returns
- a hash value of the sequence of input values
public static int hashCode (Object o)
Returns the hash code of a non-null
argument and 0 for
a null
argument.
Parameters
o | an object |
---|
Returns
- the hash code of a non-
null
argument and 0 for anull
argument
See Also
public static boolean isNull (Object obj)
Returns true
if the provided reference is null
otherwise
returns false
.
Parameters
obj | a reference to be checked against null |
---|
Returns
true
if the provided reference isnull
otherwisefalse
See Also
public static boolean nonNull (Object obj)
Returns true
if the provided reference is non-null
otherwise returns false
.
Parameters
obj | a reference to be checked against null |
---|
Returns
true
if the provided reference is non-null
otherwisefalse
See Also
public static T requireNonNull (T obj, String message)
Checks that the specified object reference is not 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"); }
Parameters
obj | the object reference to check for nullity |
---|---|
message | detail message to be used in the event that a NullPointerException is thrown |
Returns
obj
if notnull
Throws
NullPointerException | if obj is null
|
---|
public static T requireNonNull (T obj, Supplier<String> messageSupplier)
Checks that the specified object reference is not 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.
Parameters
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 |
Returns
obj
if notnull
Throws
NullPointerException | if obj is null |
---|
public static T requireNonNull (T obj)
Checks that the specified object reference is not 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); }
Parameters
obj | the object reference to check for nullity |
---|
Returns
obj
if notnull
Throws
NullPointerException | if obj is null
|
---|
public static T requireNonNullElse (T obj, T defaultObj)
Returns the first argument if it is non-null
and
otherwise returns the non-null
second argument.
Parameters
obj | an object |
---|---|
defaultObj | a non-null object to return if the first argument
is null |
Returns
- the first argument if it is non-
null
and otherwise the second argument if it is non-null
Throws
NullPointerException | if both obj is null and
defaultObj is null |
---|
public static T requireNonNullElseGet (T obj, Supplier<? extends T> supplier)
Returns the first argument if it is non-null
and otherwise
returns the non-null
value of supplier.get()
.
Parameters
obj | an object |
---|---|
supplier | of a non-null object to return if the first argument
is null |
Returns
- the first argument if it is non-
null
and otherwise the value fromsupplier.get()
if it is non-null
Throws
NullPointerException | if both obj is null and
either the supplier is null or
the supplier.get() value is null |
---|
public static String toString (Object o)
Returns the result of calling toString
for a non-null
argument and "null"
for a null
argument.
Parameters
o | an object |
---|
Returns
- the result of calling
toString
for a non-null
argument and"null"
for anull
argument
public static String toString (Object o, String nullDefault)
Returns the result of calling toString
on the first
argument if the first argument is not null
and returns
the second argument otherwise.
Parameters
o | an object |
---|---|
nullDefault | string to return if the first argument is
null |
Returns
- the result of calling
toString
on the first argument if it is notnull
and the second argument otherwise.