aspose file tools*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes problems in method overloading Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "problems in method overloading" Watch "problems in method overloading" New topic
Author

problems in method overloading

Dharmenrda kumar
Greenhorn

Joined: May 13, 2011
Posts: 19
class Array{
static void display(float i){
System.out.println("float");
}
public static void main(String[] arg){
long l=400000000000l;
display(l);
}
}

it's output is float.
my problems is why it not showing compilation error .
because i am sending long type (takes 8 byte) as an argument, but in display() method parameter is of float type(take 4 byte).
according to K&B books -:
"when an exact match isn't found, the JVM uses the method with the smallest argument that is wider than the parameter. "
but in this case float(4 byte) is not wider than the long(8 byte).


OCJP 96%
Thorsten Schneider
Greenhorn

Joined: Apr 04, 2011
Posts: 16

This problem was discussed some days ago in this Thread. There is also a link that seemed to clarify the problem: http://stackoverflow.com/questions/1293819/why-does-java-implicitly-without-cast-convert-a-long-to-a-float


OCPJP 6
Dharmenrda kumar
Greenhorn

Joined: May 13, 2011
Posts: 19
thanks Thorsten....
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: problems in method overloading
 
Similar Threads
K & B typo ?
varargs, overloading and widening
Overloading and method matching question
Need clarification on overloaded method?
Widening conversion