Class MoreObjects

java.lang.Object
com.google.common.base.MoreObjects

@GwtCompatible public final class MoreObjects extends Object
Helper functions that operate on any Object, and are not already provided in Objects.

See the Guava User Guide on writing Object methods with MoreObjects.

Since:
18.0 (since 2.0 as Objects)
Author:
Laurence Gonsalves
  • Method Details

    • firstNonNull

      public static <T> T firstNonNull(@Nullable T first, @Nullable T second)
      Returns the first of two given parameters that is not null, if either is, or otherwise throws a NullPointerException.

      To find the first non-null element in an iterable, use Iterables.find(iterable, Predicates.notNull()). For varargs, use Iterables.find(Arrays.asList(a, b, c, ...), Predicates.notNull()), static importing as necessary.

      Note: if first is represented as an Optional, this can be accomplished with first.or(second). That approach also allows for lazy evaluation of the fallback instance, using first.or(supplier).

      Java 9 users: use java.util.Objects.requireNonNullElse(first, second) instead.

      Returns:
      first if it is non-null; otherwise second if it is non-null
      Throws:
      NullPointerException - if both first and second are null
      Since:
      18.0 (since 3.0 as Objects.firstNonNull()).
    • toStringHelper

      Creates an instance of MoreObjects.ToStringHelper.

      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 (typically this), used only for its class name
      Since:
      18.0 (since 2.0 as Objects.toStringHelper()).
    • toStringHelper

      Creates an instance of MoreObjects.ToStringHelper in the same manner as toStringHelper(Object), but using the simple name of clazz instead of using an instance's Object.getClass().

      Note that in GWT, class names are often obfuscated.

      Parameters:
      clazz - the Class of the instance
      Since:
      18.0 (since 7.0 as Objects.toStringHelper()).
    • toStringHelper

      Creates an instance of MoreObjects.ToStringHelper in the same manner as toStringHelper(Object), but using className instead of using an instance's Object.getClass().
      Parameters:
      className - the name of the instance type
      Since:
      18.0 (since 7.0 as Objects.toStringHelper()).