gpt4 book ai didi

java - 使用一元运算符的区别! and (== false) 在 if 语句中

转载 作者:行者123 更新时间:2023-11-30 07:11:24 27 4
gpt4 key购买 nike

我需要知道使用 ! 之间的区别if 语句中的运算符和 ==false。

我知道两者的输出相同。我希望了解内部 jvm 性能或任何内存使用情况,以使用这样的错误值。

通过使用 !运营商

if(!MyUtil.isFieldEmpty(String value)){
System.Out.println("Not Empty");
}

通过使用==false

if(MyUtil.isFieldEmpty(String value) == false){
System.Out.println("Not Empty");
}

MyUtil.java

public static boolean isFieldEmpty(String value){
if ((value == null) || (value.trim().length() == 0) || value.equals("null")) {
return true;
} else {
return false;
}
}

谢谢!!!

最佳答案

在性能方面,可能(或可能不,很可能不)有利于使用更简单的(即不包括 == ) 形式。否则,它们几乎相同。

但这真的不是这里的重点。

if(booleanMethod() == true|false) 的形式编写 boolean 表达式完全是多余的。这在某些方面降低了可读性,引入了不必要的代码和评估语句,大多数现代 IDE/Java 风格检查器都会提示这样的表达式。

例如,PMD会提示这是“SimplifyBooleanExpressions”的情况。

如果您的左侧表达式是 boolean 值,而您需要 的只是一个 boolean 值,那么只需使用左侧表达式即可。 !MyUtil.isFieldEmpty(String value) 是完全可以接受的。

此外,顺便说一句,您的 boolean 方法也可以进行一些重构。归结为:

public static boolean isFieldEmpty(String value) {
return (value == null) || (value.trim().length() == 0) || value.equals("null");
}

这是出于同样的原因:冗余。你基本上是在说,“如果这是真的,或者这是真的,或者这是真的,那么就返回真。”事实证明,这只是表达式自然计算的结果。

为什么不直接返回表达式的结果呢? PMD会认为这是“SimplifyBooleanReturns”的情况。

关于java - 使用一元运算符的区别! and (== false) 在 if 语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21300023/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com