我已经编写了我的接口代码,但是错误。如何比较两个家具物品的两个价格?我在if语句中做得对吗? return
语句表示无法找到符号。我该如何解决这个问题?
public boolean IsCheaper(Furniture f)
{
if (f instanceof Furniture)
{
boolean status;
if (price > f.getPrice())
status = true;
else if (price < f.getPrice())
status = false;
}
return status;
}
答案 0 :(得分:1)
public boolean IsCheaper(Furniture f)
{
boolean status= false; // or true
if (f instanceof Furniture) // if(f!=null) as suggested by a comment
{
if (price > f.getPrice())
status = true;
else if (price < f.getPrice())
status = false;
}
return status;
}
状态应该在块外声明,因为你需要在外面。
如果方法正在接受家具的父类,那么确实需要检查,只需要检查instanceof
答案 1 :(得分:0)
变量boolean status;
的范围只是if块if (f instanceof Furniture)
并且在if块之外有一个return语句,所以只要if块完成,变量status
就会变得不可用,因为它变得超出了范围。
因此编译器无法找到它,因此说“找不到符号:状态”。
因此,请在if (f instanceof Furniture)
块之外声明您的状态变量。