Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Agile forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Comparable

 
Vijay Chandran
Ranch Hand
Posts: 186
Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator


Dear friends,
Why does the variable x2 (Line 5) produce compiler error?
What exactly T is? Is it equivalent to E?

Kindly provide your help.
Regards,
Vijay
 
Collins Mbianda
Ranch Hand
Posts: 259
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi !!!


is not compiling because the method is waiting for two arguments of the same type. You give him an int and a Double.
Note that integer litteral are considered like int. Thus 123 will be boxed as an Integer.

You should write this:
 
Arek Orzechowski
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

I agree it should be


but I think the reason the original line is not compiling are not the parameters (123 is boxed as Integer) but the result, which is of class Number (common superclass of Integer and Double) and cannot be converted to double

this compiles ok:
 
Collins Mbianda
Ranch Hand
Posts: 259
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Arek Orzechowski:
Hi,
....
this compiles ok:


I agree with you that the code will compile, because Number is superclass of Integer and Double. Since we are talking of compilation it's ok.

I will just add that the code will throw a ClassCastException if you don't turned 123 into a double even if it compiles.
 
Vijay Chandran
Ranch Hand
Posts: 186
Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for the reply!!!




Regards,
Vijay
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic