Class Objects

    • Method Detail

      • equal

        @CheckReturnValue
        public static boolean equal​(@Nullable
                                    java.lang.Object a,
                                    @Nullable
                                    java.lang.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
                                   java.lang.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​(java.lang.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
      • toStringHelper

        public static Objects.ToStringHelper toStringHelper​(java.lang.Class<?> clazz)
        Creates an instance of Objects.ToStringHelper in the same manner as toStringHelper(Object), but using the 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:
        7.0 (source-compatible since 2.0)
      • toStringHelper

        public static Objects.ToStringHelper toStringHelper​(java.lang.String className)
        Creates an instance of Objects.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:
        7.0 (source-compatible 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, 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:
        java.lang.NullPointerException - if both first and second were null
        Since:
        3.0