提示详情
一个返回类型为布尔值的方法,被idea自动高亮,提示为
boolean method 'xxx' is always inverted
并提供一个invert method
的解决方案。
一句话解释一下,就是:你这个方法返回值总是被取非(!)使用,为啥不直接返回一个取非后的值呢。
提示原因
idea进行语句了简洁性检查,因为在调用此方法时均对结果进行取非(! boolean
)。
所以建议你干脆修改方法,让方法输出一个取非值,并改一下方法名。
/** * 示例:一个人没钱的话,就给他安排上好的圈子 */ private boolean isrich(man man){ if (man == null){ return false; } // 有存款不欠债 if (man.getdeposit() == 0 || man.getdebt() != 0){ return false; } // 有房有车 return man.getcarnum() != 0 && man.gethousenum() != 0; } ... // 没钱的tom需要富豪做朋友 if (!isrich(tom)){ tom.setfriend("富豪"); } ... // 没钱的jerry需要马爸爸 if (!isrich(jerry)){ jerry.setfather("爸爸"); }
所以idea建议你直接修改方法为:判定是不是穷。
点击其提供的invert method
,输入新的方法名ispoor
idea会自动处理代码,输入前方法返回值取非的结果,并对方法被调用的地方进行修改。
原代码就会变成:
private boolean ispoor(man man){ if (man == null){ return true; } // 没存款还欠债 if (man.getdeposit() == 0 || man.getdebt() != 0){ return true; } // 没房没车 return man.getcarnum() == 0 || man.gethousenum() == 0; } ... // 没钱的tom需要富豪做朋友 if (ispoor(tom)){ tom.setfriend("富豪"); } ... // 没钱的jerry需要马爸爸 if (ispoor(jerry)){ jerry.setfather("马爸爸"); }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论