Class Objects

    • Method Detail

      • equal

        public static boolean equal​(@Nullable
                                    Object a,
                                    @Nullable
                                    Object b)
        Determines whether two possibly-null objects are equal. Returns:
        • true if a and b are both null.
        • true if a and b are both non-null and they are equal according to Object.equals(Object).
        • false in all other situations.

        This assumes that any non-null objects passed to this function conform to the equals() contract.

      • hashCode

        public static int hashCode​(@Nullable
                                   Object... objects)
        Generates a hash code for multiple values. The hash code is generated by calling Arrays.hashCode(Object[]). Note that array arguments to this method, with the exception of a single Object array, do not get any special handling; their hash codes are based on identity and not contents.

        This is useful for implementing Object.hashCode(). For example, in an object that has three properties, x, y, and z, one could write:

           
           public int hashCode() {
             return Objects.hashCode(getX(), getY(), getZ());
           }

        Warning: When a single object is supplied, the returned hash code does not equal the hash code of that object.

      • toStringHelper

        public static Objects.ToStringHelper toStringHelper​(Object self)
        Creates an instance of Objects.ToStringHelper.

        This is helpful for implementing Object.toString(). Specification by example:

           
           // Returns "ClassName{}"
           Objects.toStringHelper(this)
               .toString();
        
           // Returns "ClassName{x=1}"
           Objects.toStringHelper(this)
               .add("x", 1)
               .toString();
        
           // Returns "MyObject{x=1}"
           Objects.toStringHelper("MyObject")
               .add("x", 1)
               .toString();
        
           // Returns "ClassName{x=1, y=foo}"
           Objects.toStringHelper(this)
               .add("x", 1)
               .add("y", "foo")
               .toString();
        
           // Returns "ClassName{x=1}"
           Objects.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:
        2.0
      • 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.

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

        Returns:
        first if first is not null, or second if first is null and second is not null
        Throws:
        NullPointerException - if both first and second were null
        Since:
        3.0