Class Objects


  • public final class Objects
    extends Object
    Object utilities.
    Author:
    Jonathan Locke
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static BigDecimal bigDecValue​(Object value)
      Evaluates the given object as a BigDecimal.
      static BigInteger bigIntValue​(Object value)
      Evaluates the given object as a BigInteger.
      static boolean booleanValue​(Object value)
      Evaluates the given object as a boolean: if it is a Boolean object, it's easy; if it's a Number or a Character, returns true for non-zero objects; and otherwise returns true for non-null objects.
      static int compareWithConversion​(Object v1, Object v2)
      Compares two objects for equality, even if it has to convert one of them to the other type.
      static <T> T convertValue​(Object value, Class<T> toType)
      Convert between basic Java types, i.e.
      static <T> T defaultIfNull​(T originalObj, T defaultObj)
      Returns the original object if this one is != null.
      static double doubleValue​(Object value)
      Evaluates the given object as a double-precision floating-point number.
      static boolean equal​(Object a, Object b)
      Returns true if a and b are equal.
      static int getNumericType​(int t1, int t2, boolean canBeNonNumeric)
      Returns the constant from the NumericTypes interface that best expresses the type of an operation, which can be either numeric or not, on the two given types.
      static int getNumericType​(Object value)
      Returns a constant from the NumericTypes interface that represents the numeric type of the given object.
      static int getNumericType​(Object v1, Object v2)
      Returns the constant from the NumericTypes interface that best expresses the type of a numeric operation on the two given objects.
      static int getNumericType​(Object v1, Object v2, boolean canBeNonNumeric)
      Returns the constant from the NumericTypes interface that best expresses the type of an operation, which can be either numeric or not, on the two given objects.
      static int hashCode​(Object... obj)
      returns hashcode of the objects by calling obj.hashcode().
      static boolean isEqual​(Object object1, Object object2)
      Returns true if object1 is equal to object2 in either the sense that they are the same object or, if both are non-null if they are equal in the equals() sense.
      static long longValue​(Object value)
      Evaluates the given object as a long integer.
      static Number newInteger​(int type, long value)
      Returns a new Number object of an appropriate type to hold the given integer value.
      static String stringValue​(Object value)
      Evaluates the given object as a String.
      static String stringValue​(Object value, boolean trim)
      Evaluates the given object as a String and trims it if the trim flag is true.
    • Method Detail

      • bigDecValue

        public static BigDecimal bigDecValue​(Object value)
                                      throws NumberFormatException
        Evaluates the given object as a BigDecimal.
        Parameters:
        value - an object to interpret as a BigDecimal
        Returns:
        the BigDecimal value implied by the given object
        Throws:
        NumberFormatException - if the given object can't be understood as a BigDecimal
      • bigIntValue

        public static BigInteger bigIntValue​(Object value)
                                      throws NumberFormatException
        Evaluates the given object as a BigInteger.
        Parameters:
        value - an object to interpret as a BigInteger
        Returns:
        the BigInteger value implied by the given object
        Throws:
        NumberFormatException - if the given object can't be understood as a BigInteger
      • booleanValue

        public static boolean booleanValue​(Object value)
        Evaluates the given object as a boolean: if it is a Boolean object, it's easy; if it's a Number or a Character, returns true for non-zero objects; and otherwise returns true for non-null objects.
        Parameters:
        value - an object to interpret as a boolean
        Returns:
        the boolean value implied by the given object
      • compareWithConversion

        public static int compareWithConversion​(Object v1,
                                                Object v2)
        Compares two objects for equality, even if it has to convert one of them to the other type. If both objects are numeric they are converted to the widest type and compared. If one is non-numeric and one is numeric the non-numeric is converted to double and compared to the double numeric value. If both are non-numeric and Comparable and the types are compatible (i.e. v1 is of the same or superclass of v2's type) they are compared with Comparable.compareTo(). If both values are non-numeric and not Comparable or of incompatible classes this will throw and IllegalArgumentException.
        Parameters:
        v1 - First value to compare
        v2 - second value to compare
        Returns:
        integer describing the comparison between the two objects. A negative number indicates that v1 < v2. Positive indicates that v1 > v2. Zero indicates v1 == v2.
        Throws:
        IllegalArgumentException - if the objects are both non-numeric yet of incompatible types or do not implement Comparable.
      • convertValue

        public static <T> T convertValue​(Object value,
                                         Class<T> toType)
        Convert between basic Java types, i.e. primitives and their wrappers, numbers and strings.

        This method also detects when arrays are being converted and converts the components of one array to the type of the other.

        Type Parameters:
        T - target type
        Parameters:
        value - an object to be converted to the given type
        toType - class type to be converted to
        Returns:
        converted value of the type given, or null if the value cannot be converted to the given type.
      • doubleValue

        public static double doubleValue​(Object value)
                                  throws NumberFormatException
        Evaluates the given object as a double-precision floating-point number.
        Parameters:
        value - an object to interpret as a double
        Returns:
        the double value implied by the given object
        Throws:
        NumberFormatException - if the given object can't be understood as a double
      • equal

        public static boolean equal​(Object a,
                                    Object b)
        Returns true if a and b are equal. Either object may be null.
        Parameters:
        a - Object a
        b - Object b
        Returns:
        True if the objects are equal
      • getNumericType

        public static int getNumericType​(int t1,
                                         int t2,
                                         boolean canBeNonNumeric)
        Returns the constant from the NumericTypes interface that best expresses the type of an operation, which can be either numeric or not, on the two given types.
        Parameters:
        t1 - type of one argument to an operator
        t2 - type of the other argument
        canBeNonNumeric - whether the operator can be interpreted as non-numeric
        Returns:
        the appropriate constant from the NumericTypes interface
      • getNumericType

        public static int getNumericType​(Object value)
        Returns a constant from the NumericTypes interface that represents the numeric type of the given object.
        Parameters:
        value - an object that needs to be interpreted as a number
        Returns:
        the appropriate constant from the NumericTypes interface
      • getNumericType

        public static int getNumericType​(Object v1,
                                         Object v2)
        Returns the constant from the NumericTypes interface that best expresses the type of a numeric operation on the two given objects.
        Parameters:
        v1 - one argument to a numeric operator
        v2 - the other argument
        Returns:
        the appropriate constant from the NumericTypes interface
      • getNumericType

        public static int getNumericType​(Object v1,
                                         Object v2,
                                         boolean canBeNonNumeric)
        Returns the constant from the NumericTypes interface that best expresses the type of an operation, which can be either numeric or not, on the two given objects.
        Parameters:
        v1 - one argument to an operator
        v2 - the other argument
        canBeNonNumeric - whether the operator can be interpreted as non-numeric
        Returns:
        the appropriate constant from the NumericTypes interface
      • isEqual

        public static boolean isEqual​(Object object1,
                                      Object object2)
        Returns true if object1 is equal to object2 in either the sense that they are the same object or, if both are non-null if they are equal in the equals() sense.
        Parameters:
        object1 - First object to compare
        object2 - Second object to compare
        Returns:
        true if v1 == v2
      • longValue

        public static long longValue​(Object value)
                              throws NumberFormatException
        Evaluates the given object as a long integer.
        Parameters:
        value - an object to interpret as a long integer
        Returns:
        the long integer value implied by the given object
        Throws:
        NumberFormatException - if the given object can't be understood as a long integer
      • newInteger

        public static Number newInteger​(int type,
                                        long value)
        Returns a new Number object of an appropriate type to hold the given integer value. The type of the returned object is consistent with the given type argument, which is a constant from the NumericTypes interface.
        Parameters:
        type - the nominal numeric type of the result, a constant from the NumericTypes interface
        value - the integer value to convert to a Number object
        Returns:
        a Number object with the given value, of type implied by the type argument
      • stringValue

        public static String stringValue​(Object value)
        Evaluates the given object as a String.
        Parameters:
        value - an object to interpret as a String
        Returns:
        the String value implied by the given object as returned by the toString() method, or "null" if the object is null.
      • hashCode

        public static int hashCode​(Object... obj)
        returns hashcode of the objects by calling obj.hashcode(). safe to use when obj is null.
        Parameters:
        obj -
        Returns:
        hashcode of the object or 0 if obj is null
      • stringValue

        public static String stringValue​(Object value,
                                         boolean trim)
        Evaluates the given object as a String and trims it if the trim flag is true.
        Parameters:
        value - an object to interpret as a String
        trim - whether to trim the string
        Returns:
        the String value implied by the given object as returned by the toString() method, or "null" if the object is null.
      • defaultIfNull

        public static <T> T defaultIfNull​(T originalObj,
                                          T defaultObj)
        Returns the original object if this one is != null. If the original object is null the default one is returned. The default object has no restriction, it might be itself null.
        Parameters:
        originalObj - the original object
        defaultObj - the default object
        Returns:
        the original object if not null, the default one otherwise.