(null == var)和(var == null)之间有什么区别吗?

时间:2013-09-23 10:04:05

标签: java if-statement null

我想知道Java语句中的两个条件表达式null == varvar == null之间的差异。

4 个答案:

答案 0 :(得分:8)

没有区别。仅仅是风格问题。

第一个名为yoda style

  

在编写术语时,Yoda条件(也称为Yoda表示法)是一种编程风格,其中表达式的两个部分在条件语句中相反。


虽然条件表达式null == varvar == null都是等同的。但是假设你通过拼写错误==(检查相等)将错误引入=(赋值),那么var = null不会给你错误并在你的代码中引入错误。您编写null == var并假设拼写错误null = var时会产生编译时错误。编译时错误比运行时错误更好。这是尤达条件形式的优势之一。

但我也建议你阅读尤达延续的Criticism

许多程序员讨厌它,因为它必须在心理上重新反转它才能理解它。 (其他人显然没有这个问题)。这种做法被称为“尤达条件”。无论如何,大多数编译器都可以被说服以警告条件中的任务。

答案 1 :(得分:2)

答案 2 :(得分:1)

没有区别。 例如,考虑以下代码

String x = null;
if(x==null)
{
    System.out.println("null");
}
if(null==x)
{
    System.out.println("no diff");
}

<强>输出

null
no diff

这意味着没有区别

答案 3 :(得分:0)

不,没有。当varnull时,这两个陈述都是正确的。