我的Fraction程序运行流畅,但是NetBeans IDE告诉我以下if
是多余的:
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
语句。关于java - 如果消息冗余,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28821081/