'找不到符号'错误

时间:2012-12-07 04:13:29

标签: java compiler-errors

我已经编写了我的接口代码,但是错误。如何比较两个家具物品的两个价格?我在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;
}

2 个答案:

答案 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)块之外声明您的状态变量。