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

 更新时间:2024年08月05日 14:23:53   作者:达希_  
这篇文章主要介绍了IDEA提示:Boolean method ‘xxx‘ is always inverted问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

提示详情

一个返回类型为布尔值的方法,被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("马爸爸");
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java实现一个简单的缓存方法

    Java实现一个简单的缓存方法

    本篇文章主要介绍了Java实现一个简单的缓存方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • SpringMVC响应处理详细解读

    SpringMVC响应处理详细解读

    Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet,Spring MVC 角色划分清晰,分工明细,本章来讲解SpringMVC数据响应
    2022-07-07
  • java 实现MD5加密算法的简单实例

    java 实现MD5加密算法的简单实例

    这篇文章主要介绍了java 实现MD5加密算法的简单实例的相关资料,这里提供实例帮助大家应用这样的加密算法,需要的朋友可以参考下
    2017-09-09
  • 一篇文章教你将JAVA的RabbitMQz与SpringBoot整合

    一篇文章教你将JAVA的RabbitMQz与SpringBoot整合

    这篇文章主要介绍了如何将JAVA的RabbitMQz与SpringBoot整合,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-09-09
  • Java不可变类机制浅析

    Java不可变类机制浅析

    所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值。如JDK内部自带的很多不可变类:Interger、Long和String等。接下来通过本文给大家介绍Java不可变类机制,需要的朋友参考下
    2017-02-02
  • mybatis实体类字段大小写及字段获取不到值问题

    mybatis实体类字段大小写及字段获取不到值问题

    这篇文章主要介绍了mybatis实体类字段大小写及字段获取不到值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • RocketMQ消息存储文件的加载与恢复机制源码分析

    RocketMQ消息存储文件的加载与恢复机制源码分析

    这篇文章主要介绍了RocketMQ源码分析之消息存储文件的加载与恢复机制详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Java实现在线SQL编程最新完整版

    Java实现在线SQL编程最新完整版

    这篇文章主要介绍了Java实现在线SQL编程,在使用JDBC来进行数据库的操作,在使用时由于对其方法并不是全部了解,所以需要边看源码边改善功能,感兴趣的朋友跟随小编一起看看吧
    2022-06-06
  • 实现了基于TCP的Java Socket编程实例代码

    实现了基于TCP的Java Socket编程实例代码

    这篇文章主要介绍了基于TCP的Java Socket编程实例代码,有需要的朋友可以参考一下
    2013-12-12
  • 解决idea中servlet报红问题

    解决idea中servlet报红问题

    这篇文章主要介绍了解决idea中servlet报红问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04

最新评论