我正在进行一项将一种方法与另一种方法结合起来的练习。我知道getMinMax()
方法有一个空数组,但这与练习的目的无关。
代码:
public class Square{
int area;
public Square[] getMinMax(Square[][] arr){
Square[] list = new Square[2];
return list;
}
public int getArea(){
return area;
}
public boolean isDifferenceSignificant(Square[][] arr){
boolean isit = false;
Square [] result = getMinMax (arr);
if((result[1] - result[0])< 0.5) //The line (16) in question
isit = true;
return isit;
}
}
当我编译它时,我收到以下错误:
Square.java:16: error: bad operand types for binary operator '-'
if((result[1] - result[0])< 0.5)
^
first type: Square
second type: Square
1 error
我迷失了,想知道为什么会发生这个错误。
编辑:Rohit Jain说“你可能意味着 - result[1].getArea() - result[0].getArea()
”
和Lochemage说“if((result [1] .getArea() - result [0] .getArea())&lt; 0.5)”
这两个都有效,谢谢你的时间!
答案 0 :(得分:1)
我认为您确实想要测试每个area
的{{1}}变量?
Square
通过执行if((result[1].getArea() - result[0].getArea())< 0.5)
,您正在调用result[1] - result[0]
类中的二进制减法运算符,该运算符可能未定义。
答案 1 :(得分:1)
Java没有像C ++那样的运算符重载,也不能从另一个对象中减去一个对象。使用实际值(result[1].getArea()
)。