Java 冗余If消息

Java 冗余If消息,java,netbeans,Java,Netbeans,我的分数程序运行平稳,但NetBeans IDE告诉我,如果是冗余的,则如下所示: public boolean equals(Object other) { Fraction bool = (Fraction) other; if(this.numerator == bool.numerator && this.denominator == bool.denominator) { return true; } else return false;

我的分数程序运行平稳,但NetBeans IDE告诉我,如果是冗余的,则如下所示:

public boolean equals(Object other)
{
  Fraction bool = (Fraction) other;

  if(this.numerator == bool.numerator && this.denominator == bool.denominator)
  {
   return true;
  }
  else return false;       
} 
上面的代码编译/运行得很好,通过了所有测试用例,但NetBeans的冗余标志确实让我感到困扰。我在代码中添加了
reduceToLowestTerms()
,标志消失了,但我的构造函数中已经有了
reduceToLowestTerms()
。这就是非冗余代码(根据NetBeans)的样子:

public boolean equals(Object other)
{
        Fraction bool = (Fraction) other;

        if(this.numerator == bool.numerator && this.denominator == bool.denominator)
        {
         bool.reduceToLowestTerms();
         this.reduceToLowestTerms();
         return true;
        }
         else return false;       
    } 

如果您有任何建议,我们将不胜感激

这与我的IDE在此声明中给出的警告类似:

“if”语句可以简化

if(foo())
{
   return true;
}
else
{
   return false;
}
可以简化为

return foo();
它只是过于复杂和冗长的代码。你的简化是:

return this.numerator == bool.numerator && this.denominator == bool.denominator;
但正如您所注意到的,您的代码已经是正确的。无需进行此更改,但它将使代码更加简洁和简化


将调用添加到另一个方法(
reduceToLowestTerms()
)会删除此“标志”的原因是,无法再以这种方式将代码简化为单个
return
语句。

这与我的IDE在此语句中给出的警告类似:

“if”语句可以简化

if(foo())
{
   return true;
}
else
{
   return false;
}
可以简化为

return foo();
它只是过于复杂和冗长的代码。你的简化是:

return this.numerator == bool.numerator && this.denominator == bool.denominator;
但正如您所注意到的,您的代码已经是正确的。无需进行此更改,但它将使代码更加简洁和简化


将调用添加到另一个方法(
reduceToLowestTerms()
)会删除此“标志”的原因是,无法再以这种方式将代码简化为单个
return
语句。

您确定它说的是
如果
是冗余的,而不是
其他
?reduceToLowestTerms()
做什么?我能找到的唯一的
Fraction
类是在apache common lang中,它没有该方法,所以我假设这是您编写的某个自定义分数类?您也可以发布该分数类吗?可能是因为
返回(this.numerator==bool.numerator&&this.densor==bool.densor)
将在没有明确if-else的情况下工作。只是一个猜测。@fullofeels所以把它放回去,。这不是Java错误或警告消息。您确定它是在说
if
是冗余的,而不是
else
?reduceToLowestTerms()做什么?我能找到的唯一的
Fraction
类是在apache common lang中,它没有该方法,所以我假设这是您编写的某个自定义分数类?您也可以发布该分数类吗?可能是因为
返回(this.numerator==bool.numerator&&this.densor==bool.densor)
将在没有明确if-else的情况下工作。只是一个猜测。@fullofeels所以把它放回去,。这不是Java错误或警告消息。