I am struggling with a problem, which I can't understand why it doesn't work. How do I pass a variable through the double obj
and convert to int
?
Why does it not work in the top code snippet, but it works in the bottom code snippet below the line?
The only difference seems to be adding an extra variable, which is also typed as a double
?
//Converting double to int using helper
//This doesn't work- gets error message
//Cannot invoke intValue() on the primitive type double
double doublehelpermethod = 123.65;
double doubleObj = new Double( doublehelpermethod);
System.out.println("The double value is: "+ doublehelpermethod.intValue());
//--------------------------------------------------------------------------
//but this works! Why?
Double d = new Double(123.65);
System.out.println("The double object is: "+ doubleObj);
You're in the top snippet, trying to assign a Double object to a primitive type like this.
which would of course work because of unboxing (converting a wrapper type to it's equivalent primitive type) but what problem you're facing is dereferencing
doublehelpermethod
.is not possible because
doublehelpermethod
is a primitive type variable and can not be associated using a dot.
See... AutoBoxingThe
double
is a primitive type, while theDouble
is a regular Java class. You cannot call a method on a primitive type. TheintValue()
method is however available on theDouble
, as shown in the javadocSome more reading on those primitive types can be found here