Documentation of methods in java.lang.Number

Andreas Lundblad andreas.lundblad at oracle.com
Wed Dec 17 10:26:12 UTC 2014


On Tue, Dec 16, 2014 at 03:18:49PM -0800, Brian Burkhalter wrote:
> Andreas,
> 
> Doesn’t the class documentation of Number [1] provide sufficient clarity, to wit:
> 
> "The specific semantics of the conversion from the numeric value of a particular Number implementation to a given primitive type is defined by the Number implementation in question.”
> 
> and
> 
> “[…] conversions may lose information about the overall magnitude of a numeric value, may lose precision, and may even return a result of a different sign than the input. See the documentation of a given Number implementation for conversion details.”

Agree. I see no way of improving the class level documentation.

> That said, it might not however hurt slightly to modify the descriptions of {float,double,int,long}Value() to read something like, for longValue() for example:
> 
> "Returns the value of the specified number as a {@code long}, which may
>  involve rounding, truncation, or some other narrowing conversion."

Right. As it stands now the class level description says "the semantics of the conversion is defined by the Number implementation in question", and then the documentation of longValue narrows this down to "rounding or truncation". By adding "or some other narrowing conversion" we make room for the BigDecimal/BigInteger implementations, but I would argue that it's still more constrained than the class level description.

Another suggestion would be:

"Returns the value of the specified number as a {@code long}. The specific semantics of the conversion is defined by the subclass in question."

-- Andreas



More information about the core-libs-dev mailing list