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("马爸爸");
}

总结

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

相关文章

  • 2个java希尔排序示例

    2个java希尔排序示例

    java希尔排序示例,希尔排序是插入排序的一种类型,也可以用一个形象的叫法缩小增量法,需要的朋友可以参考下
    2014-05-05
  • java代码实现斗地主发牌功能

    java代码实现斗地主发牌功能

    这篇文章主要介绍了java实现斗地主发牌功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Java如何解决发送Post请求报Stream closed问题

    Java如何解决发送Post请求报Stream closed问题

    这篇文章主要介绍了Java如何解决发送Post请求报Stream closed问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • SpringBoot接口请求入参和出参增强的五种方法

    SpringBoot接口请求入参和出参增强的五种方法

    这篇文章主要介绍了SpringBoot接口请求入参和出参增强的五种方法,使用`@JsonSerialize`和`@JsonDeserialize`注解,全局配置Jackson的`ObjectMapper`,使用`@ControllerAdvice`配合`@InitBinder`,自定义HttpMessageConverter和使用AOP进行切面编程,需要的朋友可以参考下
    2024-07-07
  • Spring Boot实现文件上传示例代码

    Spring Boot实现文件上传示例代码

    本篇文章主要介绍了Spring Boot实现文件上传示例代码,可以实现单文件和多文件的上传,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • SpringBoot项目整合MongoDB启动失败的常见错误及解决方法

    SpringBoot项目整合MongoDB启动失败的常见错误及解决方法

    这篇文章主要介绍了SpringBoot项目整合MongoDB启动失败的常见错误及解决方法,涵盖了连接配置问题、MongoDB服务配置问题、依赖与自动配置问题、数据库权限与数据问题以及其他常见问题的相关资料,需要的朋友可以参考下
    2025-11-11
  • Java多线程之搞定最后一公里详解

    Java多线程之搞定最后一公里详解

    Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务,多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销
    2021-10-10
  • Java 序列化详解及简单实现实例

    Java 序列化详解及简单实现实例

    这篇文章主要介绍了 Java 序列化详解及简单实现实例的相关资料,使用序列化目的:以某种存储形式使自定义对象持久化,将对象从一个地方传递到另一个地方,需要的朋友可以参考下
    2017-03-03
  • Java实现接月饼小游戏的示例代码

    Java实现接月饼小游戏的示例代码

    本文将用Java语言自制一个小游戏:《接月饼小游戏》,游戏规则为不要被月亮砸到,尽可能地多接月饼。文中的实现代码讲解清晰,感兴趣的可以动手试一试
    2022-02-02
  • 关于spring三级缓存的解读

    关于spring三级缓存的解读

    Spring三级缓存解决循环依赖、AOP和多线程问题,包括singletonObjects、earlySingletonObjects和singletonFactories三层缓存,通过不同方法获取bean并解决这些问题
    2025-02-02

最新评论