Java 冗余If消息
我的分数程序运行平稳,但NetBeans IDE告诉我,如果是冗余的,则如下所示: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;
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错误或警告消息。