-
- All Superinterfaces:
JsonValue
public interface JsonNumber extends JsonValue
An immutable JSON number value.Implementations may use a
BigDecimal
object to store the numeric value internally. TheBigDecimal
object can be constructed from the following types:int
BigDecimal(int)
,long
BigDecimal(long)
,BigInteger
BigDecimal(BigInteger)
,double
BigDecimal.valueOf(double)
, andString
BigDecimal(String)
. Some of the method semantics in this class are defined using theBigDecimal
semantics.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface jakarta.json.JsonValue
JsonValue.ValueType
-
-
Field Summary
-
Fields inherited from interface jakarta.json.JsonValue
EMPTY_JSON_ARRAY, EMPTY_JSON_OBJECT, FALSE, NULL, TRUE
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description BigDecimal
bigDecimalValue()
Returns this JSON number as aBigDecimal
object.BigInteger
bigIntegerValue()
Returns this JSON number as aBigInteger
object.BigInteger
bigIntegerValueExact()
Returns this JSON number as aBigInteger
object.double
doubleValue()
Returns this JSON number as adouble
.boolean
equals(Object obj)
Compares the specified object with thisJsonNumber
object for equality.int
hashCode()
Returns the hash code value for thisJsonNumber
object.int
intValue()
Returns this JSON number as anint
.int
intValueExact()
Returns this JSON number as anint
.boolean
isIntegral()
Returns true if this JSON number is a integral number.long
longValue()
Returns this JSON number as along
.long
longValueExact()
Returns this JSON number as along
.default Number
numberValue()
Returns this JSON number as aNumber
object.String
toString()
Returns a JSON text representation of the JSON number.-
Methods inherited from interface jakarta.json.JsonValue
asJsonArray, asJsonObject, getValueType
-
-
-
-
Method Detail
-
isIntegral
boolean isIntegral()
Returns true if this JSON number is a integral number. This method semantics are defined usingbigDecimalValue().scale()
. If the scale is zero, then it is considered integral type. This integral type information can be used to invoke an appropriate accessor method to obtain a numeric value as in the following example:JsonNumber num = ... if (num.isIntegral()) { num.longValue(); // or other methods to get integral value } else { num.doubleValue(); // or other methods to get decimal number value }
- Returns:
- true if this number is a integral number, otherwise false
-
intValue
int intValue()
Returns this JSON number as anint
. Note that this conversion can lose information about the overall magnitude and precision of the number value as well as return a result with the opposite sign.- Returns:
- an
int
representation of the JSON number - See Also:
BigDecimal.intValue()
-
intValueExact
int intValueExact()
Returns this JSON number as anint
.- Returns:
- an
int
representation of the JSON number - Throws:
ArithmeticException
- if the number has a nonzero fractional part or if it does not fit in anint
- See Also:
BigDecimal.intValueExact()
-
longValue
long longValue()
Returns this JSON number as along
. Note that this conversion can lose information about the overall magnitude and precision of the number value as well as return a result with the opposite sign.- Returns:
- a
long
representation of the JSON number. - See Also:
BigDecimal.longValue()
-
longValueExact
long longValueExact()
Returns this JSON number as along
.- Returns:
- a
long
representation of the JSON number - Throws:
ArithmeticException
- if the number has a non-zero fractional part or if it does not fit in along
- See Also:
BigDecimal.longValueExact()
-
bigIntegerValue
BigInteger bigIntegerValue()
Returns this JSON number as aBigInteger
object. This is a a convenience method forbigDecimalValue().toBigInteger()
. Note that this conversion can lose information about the overall magnitude and precision of the number value as well as return a result with the opposite sign.- Returns:
- a
BigInteger
representation of the JSON number. - See Also:
BigDecimal.toBigInteger()
-
bigIntegerValueExact
BigInteger bigIntegerValueExact()
Returns this JSON number as aBigInteger
object. This is a convenience method forbigDecimalValue().toBigIntegerExact()
.- Returns:
- a
BigInteger
representation of the JSON number - Throws:
ArithmeticException
- if the number has a nonzero fractional part- See Also:
BigDecimal.toBigIntegerExact()
-
doubleValue
double doubleValue()
Returns this JSON number as adouble
. This is a a convenience method forbigDecimalValue().doubleValue()
. Note that this conversion can lose information about the overall magnitude and precision of the number value as well as return a result with the opposite sign.- Returns:
- a
double
representation of the JSON number - See Also:
BigDecimal.doubleValue()
-
bigDecimalValue
BigDecimal bigDecimalValue()
Returns this JSON number as aBigDecimal
object.- Returns:
- a
BigDecimal
representation of the JSON number
-
numberValue
default Number numberValue()
Returns this JSON number as aNumber
object.- Returns:
- a
Number
representation of the JSON number - Since:
- 1.1
-
toString
String toString()
Returns a JSON text representation of the JSON number. The representation is equivalent toBigDecimal.toString()
.
-
equals
boolean equals(Object obj)
Compares the specified object with thisJsonNumber
object for equality. Returnstrue
if and only if the type of the specified object is alsoJsonNumber
and theirbigDecimalValue()
objects are equal
-
hashCode
int hashCode()
Returns the hash code value for thisJsonNumber
object. The hash code of aJsonNumber
object is defined as the hash code of itsbigDecimalValue()
object.
-
-