IDEA提示:Boolean method ‘xxx‘ is always inverted

比眉伴天荒 2023-07-06 08:46 86阅读 0赞

提示详情:
一个返回类型为布尔值的方法,被IDEA自动高亮,提示为 Boolean method 'xxx' is always inverted。并提供一个Invert method的解决方案。
在这里插入图片描述
一句话解释一下,就是:你这个方法返回值总是被取非(!)使用为啥不直接返回一个取非后的值呢。

提示原因:
IDEA进行语句了简洁性检查,因为在调用此方法时均对结果进行取非(! boolean)。所以建议你干脆修改方法,让方法输出一个取非值,并改一下方法名。

  1. /** * 示例:一个人没钱的话,就给他安排上好的圈子 */
  2. private boolean isRich(Man man){
  3. if (man == null){
  4. return false;
  5. }
  6. // 有存款不欠债
  7. if (man.getDeposit() == 0 || man.getDebt() != 0){
  8. return false;
  9. }
  10. // 有房有车
  11. return man.getCarNum() != 0 && man.getHouseNum() != 0;
  12. }
  13. ...
  14. // 没钱的tom需要王思聪做朋友
  15. if (!isRich(tom)){
  16. tom.setFriend("王思聪");
  17. }
  18. ...
  19. // 没钱的jerry需要马云做爸爸
  20. if (!isRich(jerry)){
  21. jerry.setFather("马云");
  22. }

所以IDEA建议你直接修改方法为:判定是不是穷。
点击其提供的Invert method,输入新的方法名isPoor
在这里插入图片描述

IDEA会自动处理代码,输入前方法返回值取非的结果,并对方法被调用的地方进行修改。原代码就会变成:

  1. private boolean isPoor(Man man){
  2. if (man == null){
  3. return true;
  4. }
  5. // 没存款还欠债
  6. if (man.getDeposit() == 0 || man.getDebt() != 0){
  7. return true;
  8. }
  9. // 没房没车
  10. return man.getCarNum() == 0 || man.getHouseNum() == 0;
  11. }
  12. ...
  13. // 没钱的tom需要王思聪做朋友
  14. if (isPoor(tom)){
  15. tom.setFriend("王思聪");
  16. }
  17. ...
  18. // 没钱的jerry需要马云做爸爸
  19. if (isPoor(jerry)){
  20. jerry.setFather("马云");
  21. }

发表评论

表情:
评论列表 (有 0 条评论,86人围观)

还没有评论,来说两句吧...

相关阅读