null!= variable和variable之间的区别!= null

时间:2014-09-17 05:02:35

标签: java null comparison compare

null!=variablevariable!=null之间有什么区别 哪种方法最适合使用?

if ((null != value1) || (null != value2) || (null != value3)) {
            .......
            .......
            .......
}

if ((value1 != null) || (value2 != null) || (value3 != null)) {
                .......
                .......
                .......
}

请建议最好的一个和这些之间的逻辑变化?

6 个答案:

答案 0 :(得分:5)

没有区别。

但人们经常写“abc”.equals(foo)而不是foo.equals(“abc”)来避免零点异常。

答案 1 :(得分:3)

没有什么不同。

出于纯粹的可读性原因,我更喜欢value != null

答案 2 :(得分:2)

两种比较方式都是正确的。逻辑上没有区别,但程序员更喜欢使用值!= null。

答案 3 :(得分:1)

正如其他人所提到的那样,没有区别,但我还没有遇到过

的事情
null != value2 

我总是把它视为value2!= null,就像thihara所说的更容易阅读。 我认为保持它的价值也是好的!对于初学者程序员来说可能会超过一些代码可能会在概念上稍微丢失,即使没有区别。

答案 4 :(得分:1)

null != value是来自C的保留。在C中,您的代码将以这种方式编译而不会发出警告: if (variable = null)(这是一个错误的代码),而你实际上可能意味着if (variable == null)

但是在Jave这两种风格都没问题。

答案 5 :(得分:1)

在C赋值中看起来类似于比较:

lvalue = rvalue;
lvalue == rvalue;

可以分配左值(变量)。 rvalues可以是表达式。 Null无法赋值,因此如果你坚持使用null作为比较中的左值,那么编译器将在语句中捕获第二个等号的省略,如

null = rvalue;

您可能会意外地将null指定为:

lvalue = null;