Documentation of methods in java.lang.Number

joe darcy joe.darcy at oracle.com
Fri Dec 19 23:26:19 UTC 2014


Hello,

On 12/19/2014 2:39 PM, Brian Burkhalter wrote:
> On Dec 17, 2014, at 2:26 AM, Andreas Lundblad <andreas.lundblad at oracle.com> wrote:
>
>> 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."
> Does something like the following seem reasonable?
>
> Brian
>
> --- a/src/java.base/share/classes/java/lang/Number.java
> +++ b/src/java.base/share/classes/java/lang/Number.java
> @@ -54,8 +54,10 @@
>    */
>   public abstract class Number implements java.io.Serializable {
>       /**
> -     * Returns the value of the specified number as an {@code int},
> -     * which may involve rounding or truncation.
> +     * Returns the value of the specified number as an {@code int}.  The
> +     * specific semantics of the conversion is defined by the subclass in
> +     * question, and may involve a narrowing conversion such as rounding or
> +     * truncation.
>        *
>        * @return  the numeric value represented by this object after conversion
>        *          to type {@code int}.

I don't really think the current text is problematic; however, if it is 
to be changed, I recommending including a citation to the "Narrowing 
primitive conversion" section of the Java Language Specification. This 
can be accomplished using the @jls javadoc tag; the syntax is something like

     * @jls 5.1.3. Narrowing Primitive Conversion

Examples of the use of @jls can be found elsewhere in the core libraries.

For the exact wording how about

... The particular semantics of the conversion operation from the 
specified number to a {@code long} are defined  in subclasses. The 
operation may involve a narrowing conversion, rounding, or truncation.

Cheers,

-Joe

> @@ -63,8 +65,10 @@
>       public abstract int intValue();
>   
>       /**
> -     * Returns the value of the specified number as a {@code long},
> -     * which may involve rounding or truncation.
> +     * Returns the value of the specified number as a {@code long}.  The
> +     * specific semantics of the conversion is defined by the subclass in
> +     * question, and may involve a narrowing conversion such as rounding or
> +     * truncation.
>        *
>        * @return  the numeric value represented by this object after conversion
>        *          to type {@code long}.
> @@ -72,8 +76,9 @@
>       public abstract long longValue();
>   
>       /**
> -     * Returns the value of the specified number as a {@code float},
> -     * which may involve rounding.
> +     * Returns the value of the specified number as a {@code float}.  The
> +     * specific semantics of the conversion is defined by the subclass in
> +     * question, and may involve a narrowing conversion such as rounding.
>        *
>        * @return  the numeric value represented by this object after conversion
>        *          to type {@code float}.
> @@ -81,8 +86,9 @@
>       public abstract float floatValue();
>   
>       /**
> -     * Returns the value of the specified number as a {@code double},
> -     * which may involve rounding.
> +     * Returns the value of the specified number as a {@code double}.  The
> +     * specific semantics of the conversion is defined by the subclass in
> +     * question, and may involve a narrowing conversion such as rounding.
>        *
>        * @return  the numeric value represented by this object after conversion
>        *          to type {@code double}.




More information about the core-libs-dev mailing list