Here is the conundrum
I get this error message
[javac] tpsNumberFormat.java:232: cannot resolve symbol
[javac] symbol : constructor Measure (CustomUnit,double)
[javac] location: class Measure
[javac] Measure measure = new Measure(unit, dNum );
Yet this line complies
Measure measure = new Measure(unit, new Double(dNum));
The actual constructor is defined as
public Measure(CustomUnit unit, java.lang.Number number)
Now Number is an abstract class so I can't actually construct one.
If I try to cast I get
[javac] tpsNumberFormat.java:232: inconvertible types
[javac] found : double
[javac] required: java.lang.Number
[javac] Measure measure = new Measure(unit, (Number) dNum );
Strange since a Double is in the list of "Direct Known Subclasses:" of Number.
The version is embarassingly 1.3.1_07
Thanks to those who expressed interest.
Bob
A. Bolmarcich - 31 Dec 2004 22:48 GMT
> Here is the conundrum
>
[quoted text clipped - 4 lines]
> [javac] location: class Measure
> [javac] Measure measure = new Measure(unit, dNum );
The error message indicate that the variable named dNum has type double.
> Yet this line complies
>
> Measure measure = new Measure(unit, new Double(dNum));
The expression new Double(dNum) is of type Double, which is not the same as
type double.
> The actual constructor is defined as
>
> public Measure(CustomUnit unit, java.lang.Number number)
Because Number is an ancestor class of Double line that you previous gave
using this constructor.
> Now Number is an abstract class so I can't actually construct one.
>
[quoted text clipped - 6 lines]
>
> Strange since a Double is in the list of "Direct Known Subclasses:" of Number.
The error message inidcates that the variable named dNum has type double,
which is not the same as type Double.
Tony Morris - 31 Dec 2004 22:49 GMT
> Here is the conundrum
>
[quoted text clipped - 4 lines]
> [javac] location: class Measure
> [javac] Measure measure = new Measure(unit,
dNum );
> Yet this line complies
>
[quoted text clipped - 20 lines]
>
> Bob
double is a primitive type that is not assignable to or from a
java.lang.Double, which is a reference type (this statement applies to
compiler version < 1.5)
http://java.sun.com/tutorial/java/nutsandbolts/datatypes.html

Signature
Tony Morris
http://xdweb.net/~dibblego/