Object, and are not already provided in
java.util.Objects.
See the Guava User Guide on writing Object
methods with MoreObjects.
- Since:
- 18.0 (since 2.0 as
Objects) - Author:
- Laurence Gonsalves
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classSupport class forMoreObjects#toStringHelper. -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> TfirstNonNull(T first, T second) Returns the first of two given parameters that is notnull, if either is, or otherwise throws aNullPointerException.static MoreObjects.ToStringHelpertoStringHelper(Class<?> clazz) Creates an instance ofToStringHelperin the same manner as#toStringHelper(Object), but using the simple name ofclazzinstead of using an instance'sObject#getClass().static MoreObjects.ToStringHelpertoStringHelper(Object self) Creates an instance ofToStringHelper.static MoreObjects.ToStringHelpertoStringHelper(String className) Creates an instance ofToStringHelperin the same manner as#toStringHelper(Object), but usingclassNameinstead of using an instance'sObject#getClass().
-
Method Details
-
firstNonNull
public static <T> T firstNonNull(@CheckForNull T first, @CheckForNull T second) Returns the first of two given parameters that is notnull, if either is, or otherwise throws aNullPointerException.To find the first non-null element in an iterable, use
Iterables.find(iterable, Predicates.notNull()). For varargs, useIterables.find(Arrays.asList(a, b, c, ...), Predicates.notNull()), static importing as necessary.Note: if
firstis represented as anOptional, this can be accomplished withOptional#or(Object) first.or(second). That approach also allows for lazy evaluation of the fallback instance, usingOptional#or(Supplier) first.or(supplier).Java 9 users: use
java.util.Objects.requireNonNullElse(first, second)instead.- Returns:
firstif it is non-null; otherwisesecondif it is non-null- Throws:
NullPointerException- if bothfirstandsecondare null- Since:
- 18.0 (since 3.0 as
Objects.firstNonNull()).
-
toStringHelper
Creates an instance ofToStringHelper.This is helpful for implementing
Object#toString(). Specification by example:// Returns "ClassName{}" MoreObjects.toStringHelper(this) .toString(); // Returns "ClassName{x=1}" MoreObjects.toStringHelper(this) .add("x", 1) .toString(); // Returns "MyObject{x=1}" MoreObjects.toStringHelper("MyObject") .add("x", 1) .toString(); // Returns "ClassName{x=1, y=foo}" MoreObjects.toStringHelper(this) .add("x", 1) .add("y", "foo") .toString(); // Returns "ClassName{x=1}" MoreObjects.toStringHelper(this) .omitNullValues() .add("x", 1) .add("y", null) .toString();Note that in GWT, class names are often obfuscated.
- Parameters:
self- the object to generate the string for (typicallythis), used only for its class name- Since:
- 18.0 (since 2.0 as
Objects.toStringHelper()).
-
toStringHelper
Creates an instance ofToStringHelperin the same manner as#toStringHelper(Object), but using the simple name ofclazzinstead of using an instance'sObject#getClass().Note that in GWT, class names are often obfuscated.
- Parameters:
clazz- theClassof the instance- Since:
- 18.0 (since 7.0 as
Objects.toStringHelper()).
-
toStringHelper
Creates an instance ofToStringHelperin the same manner as#toStringHelper(Object), but usingclassNameinstead of using an instance'sObject#getClass().- Parameters:
className- the name of the instance type- Since:
- 18.0 (since 7.0 as
Objects.toStringHelper()).
-