Java 如果(isTesting==false)?如果(false==isTesting)?如果(!istest)?哪种编程方式最好

Java 如果(isTesting==false)?如果(false==isTesting)?如果(!istest)?哪种编程方式最好,java,Java,几年前,我正在为条件检查编写代码,如下所示 boolean isTesting ==false; if(isTesting==false) 在一个晴朗的日子里,一个年长的家伙来找我,告诉我这不是一个有效的方法。然后向我解释了这件事。我听到了,但我想我没听。 所以我开始像下面这样写,而不知道它的目的 if(false==isTesting) 现在突然又对这个话题产生了好奇心,这真的很有效!?哪一个是最好的方法 如果(isTesting==false)? if(false==istest)? 如

几年前,我正在为条件检查编写代码,如下所示

boolean isTesting ==false;
if(isTesting==false)
在一个晴朗的日子里,一个年长的家伙来找我,告诉我这不是一个有效的方法。然后向我解释了这件事。我听到了,但我想我没听。 所以我开始像下面这样写,而不知道它的目的

if(false==isTesting)
现在突然又对这个话题产生了好奇心,这真的很有效!?哪一个是最好的方法

如果(isTesting==false)
if(false==istest)
如果(!istest)

对于
if(null==value)
if(value==null)
也有同样的疑问。请澄清


提前感谢。

最好的是
if(!istest)
,因为它最简单、最干净

如果(value==null)其他两个选项中的

更自然,所以我建议使用那个

if (isTesting == false) 
这有点危险,因为您可能会忘记签名和书写

if (isTesting = false) 
编译(它将false赋值给
istest
,并计算为false)

避免该问题,因为忘记
=
会使代码无效。但它太冗长了,将已经是布尔值的内容与另一个布尔值进行比较,从而生成布尔值。所以

if (!isTesting) 
做同样的事情,表明您理解booelan表达式是什么,并且没有忘记
=
的风险。你当然应该更喜欢最后一种方式

书写

if (null == value) 
是不必要的,因为忘记一个相等的

if (value = null)
将导致代码无效
value=null
不是布尔表达式(除非值的类型为
boolean
)。因此,使用更自然的
value==null


无论如何,除非您经常切换到使用
=
而不是
=
进行比较的语言,否则您通常不会忘记使用
=
而不是
=
。几天后就变得自然了。当您在布尔表达式中使用
=
而不是
=
时,好的IDE和代码质量工具会警告您。

在功能上它们都是等效的

也就是说,建议在==的左侧写入常量/文字是因为不可能意外地写入=(赋值)而不是==(相等)。由于您不能分配给常量/文字,如果您意外地编写了=,编译器会抱怨


简短,简洁!表达式并没有这样的问题,而且它还使表达式的计算结果必须是布尔值(其他所有内容都将是编译错误)变得非常明显。因此,一个简单的if(boolean)/if(!boolean)通常被认为是最符合逻辑的习惯用法。

最佳方式:
if(!isTesting)
这只是Joda模式,与效率无关。不,不,不,最好的方式是:
if(isTesting&isTesting==isTesting^isTesting)
@andemoniy LOL,这很容易阅读,而且非常有效。你让我的项目超快;)
if (value = null)