我的Java程序中有一个布尔方法,我想知道为什么NetBeans建议对我的代码进行此更改:
return isPrime != 0;
我写的是:
if (isPrime == 0) {
return false;
}
else{
return true;
}
两者都正常工作,但我无法理解NetBeans建议的变更背后的逻辑.无论是真还是假都没有归还.有人可以向我解释这背后的逻辑吗?谢谢
解决方法:
代替
if (isPrime == 0) {
return false;
} else {
return true;
}
尝试
return (isPrime != 0);
同样的事情,我会告诉你重构路径.从…开始
if (isPrime == 0) {
return false;
} else {
return true;
}
是相同的
if (isPrime != 0) {
return true;
} else {
return false;
}
可以通过替换来减少,用“doIsPrime()”函数替换’isPrime!= 0′
private boolean doIsPrime() {
return isPrime != 0;
}
代入
if (doIsPrime()) {
// guaranteed to be the same as above!
return doIsPrime();
} else {
return doIsPrime();
}
可以减少两个块(作为重复的代码)
if (doIsPrime()) {
}
return doIsPrime();
并通过删除空块周围的if语句进一步减少
return doIsPrime();
现在撤消替换’doIsPrime()’回到’isPrime!= 0′
return isPrime != 0;
没有必要真正做替换;但是,我发现它更好地展示了if语句冗余的原因.
标签:java,boolean,netbeans
来源: https://codeday.me/bug/20190725/1527953.html