Class SdkNumber

java.lang.Object
java.lang.Number
software.amazon.awssdk.core.SdkNumber
All Implemented Interfaces:
Serializable

@Immutable public final class SdkNumber extends Number implements Serializable
An in-memory representation of Number being given to a service or being returned by a service. This is a SDK representation of a Number. This allows conversion to any desired numeric type by providing constructors as below Thus, by doing this, this class is able to preserve arbitrary precision of any given number.

If SdkNumber is expected in a particular number format then its corresponding getter methods can be used.

Example for a SdkNumber created with BigDecimal the fromBigDecimal(BigDecimal) can be used.

See Also:
  • Method Details

    • fromInteger

      public static SdkNumber fromInteger(int integerValue)
      Create SdkNumber from a integer value.
      Parameters:
      integerValue - Integer value.
      Returns:
      new SdkNumber for the given int value.
    • fromBigInteger

      public static SdkNumber fromBigInteger(BigInteger bigIntegerValue)
      Create SdkNumber from a BigInteger value.
      Parameters:
      bigIntegerValue - BigInteger value.
      Returns:
      new SdkNumber for the given BigInteger value.
    • fromBigDecimal

      public static SdkNumber fromBigDecimal(BigDecimal bigDecimalValue)
      Create SdkNumber from a BigDecimal value.
      Parameters:
      bigDecimalValue - BigInteger value.
      Returns:
      new SdkNumber for the given BigDecimal value.
    • fromLong

      public static SdkNumber fromLong(long longValue)
      Create SdkNumber from a long Value.
      Parameters:
      longValue - long value.
      Returns:
      new SdkNumber for the given long value.
    • fromDouble

      public static SdkNumber fromDouble(double doubleValue)
      Create SdkNumber from a double Value.
      Parameters:
      doubleValue - long value.
      Returns:
      new SdkNumber for the given double value.
    • fromShort

      public static SdkNumber fromShort(short shortValue)
      Create SdkNumber from a long Value.
      Parameters:
      shortValue - long value.
      Returns:
      new SdkNumber for the given long value.
    • fromFloat

      public static SdkNumber fromFloat(float floatValue)
      Create SdkNumber from a float Value.
      Parameters:
      floatValue - float value.
      Returns:
      new SdkNumber for the given float value.
    • fromString

      public static SdkNumber fromString(String stringValue)
      Create SdkNumber from a long Value.
      Parameters:
      stringValue - String value.
      Returns:
      new SdkNumber for the given stringValue value.
    • intValue

      public int intValue()
      Gets the integer value of the SdkNumber. If we do a intValue() for SdkNumber constructed from float, double, long, BigDecimal, BigInteger number type then it may result in loss of magnitude and a loss of precision. The result may lose some of the least significant bits of the value. Precision is not lost while getting a SdkNumber which was constructed as lower precision number type like short, byte, integer.
      Specified by:
      intValue in class Number
      Returns:
      integer value of SdkNumber .
    • longValue

      public long longValue()
      Gets the long value of the SdkNumber. If we do a longValue() for SdkNumber constructed from float, double, BigDecimal, BigInteger number type then it may result in loss of magnitude and a loss of precision. Precision is not lost while getting a SdkNumber which was constructed from lower precision type like short, byte, integer.
      Specified by:
      longValue in class Number
      Returns:
      long value of SdkNumber.
    • floatValue

      public float floatValue()
      Gets the float value of the SdkNumber. If we do a floatValue() for SdkNumber constructed from double, BigDecimal, BigInteger number type then it may result in loss of magnitude and a loss of precision. Precision is not lost while getting a SdkNumber which was constructed from precision type like short, byte, integer, long.
      Specified by:
      floatValue in class Number
      Returns:
      long value of SdkNumber.
    • doubleValue

      public double doubleValue()
      Gets the double value of the SdkNumber. If we do a doubleValue() for SdkNumber constructed from BigDecimal, BigInteger number type then it may result in loss of magnitude and a loss of precision. Precision is not lost while getting a SdkNumber which was constructed from precision type like short, byte, integer, long, float.
      Specified by:
      doubleValue in class Number
      Returns:
      long value of SdkNumber.
    • bigDecimalValue

      public BigDecimal bigDecimalValue()
      Gets the bigDecimalValue of the SdkNumber. Precision is not lost in this case. However bigDecimalValue cannot be performed on a {SdkNumber} constructed from Float/Double Nan/Infinity.
      Returns:
      BigDecimal value of SdkNumber
      Throws:
      NumberFormatException - Exception in thrown if a SdkNumber was constructed asNan/Infinte number of Double/FLoat type.Since we cannot convert NaN/Infinite numbers to BigDecimal.
    • stringValue

      public String stringValue()
      Gets the String value of the SdkNumber.
      Returns:
      the stringValue
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object