Cannot debug this code !!!
public interface MyComparable {
int compareTo(Object obj);
}
public class Rectangle {
public double width;
public double length;
public Rectangle(double w, double l)
{
width = w;
length = l;
}
public double area()
{
return length*width;
}
}
public class Circle implements MyComparable {
private double radius;
public Circle ( double r)
{
radius = r;
}
public double area()
{
return 3.1416*radius*radius;
}
public int compareTo(Object obj)
{
if (obj instanceof Rectangle)
{
Rectangle rec = (Rectangle)obj;
if ( this.area() < rec.area())
{
return -1;
}
else
if ( this.area() > rec.area())
{
return 1;
}
else
{
return 0;
}
}
if (obj instanceof Circle)
{
Circle cir = (Circle)obj;
if ( this.area() < cir.area())
{
return -1;
}
else if ( this.area() > cir.area())
{
return 1;
}
else
{
return 0;
}
}
}
}
public class TestComparable {
public static void main(String[] args) {
Circle cir = new Circle(4.5);
Rectangle rec = new Rectangle(3,4);
int res = -2;
res = cir.compareTo(rec);
System.out.printf("The result is %d", res);
}
}
I get an error message :
Exception in thread "main" java.lang.Error: Unresolved compilation
problem:
This method must return a result of type int
at Circle.compareTo(Circle.java:14)
at TestComparable.main(TestComparable.java:10)
Can you help ??
Thanks,
Ankur