【发布时间】:2013-03-20 08:52:51
【问题描述】:
我对空检查的编码标准有疑问。 我想知道两者的区别
if(a!=null)
和
if(null!=a)
哪一种更好,使用哪一种,为什么?
【问题讨论】:
标签: java android syntax coding-style null
我对空检查的编码标准有疑问。 我想知道两者的区别
if(a!=null)
和
if(null!=a)
哪一种更好,使用哪一种,为什么?
【问题讨论】:
标签: java android syntax coding-style null
两者在 Java 中是相同的,因为 if 中只能包含布尔表达式。这只是程序员的编码风格偏好,其中大多数使用 null != a。
null != a 是 Java、C++ 等编程语言的老惯例(称为 Yoda 条件)。
由于写入if (a = null) 并意外地将null 分配给a 是有效的,因此首先写入null 是阻止此事故发生的警卫。
【讨论】:
没有区别。但第一种更为常见。第二个也被称为“尤达条件”,因为它的“语法”不自然。
有一次我在一个项目中工作,其中编码准则是使用if (null != a),因为他们认为开发人员更容易理解常量值必须始终排在第一位(就像在CONSTANT_VALUE.equals(variable) 中一样。那很好烦死我了。
【讨论】:
null 的常数。例如。 "bar".equals(foo)
他们都是一样的。这取决于您的编码风格。
【讨论】:
从编译器的角度来看,它们完全相同。但是第一种形式更具可读性,所以我建议你使用那个形式。
【讨论】:
如果语句基于表达式的结果起作用,它们之间没有区别
所以你写if(a!=null) 或if(null!=a) 将产生真或假然后评估结果。
所以写你喜欢的没关系
【讨论】:
他们都是一样的。虽然第一个变体很常见,但如果您知道第一个变量不为空,则第二个变体很有用
例如 "some value".equals(your_variable) ,一些值可以是任何你知道不为空的值。当 your_variable 为 null 时,这将避免 NPE。
String str = "somevalue";
if(str != null && str.equals("somevalue")) { }
if("somevalue".equals(str)) { }
无论str 是否为null,这两个条件都相同。
【讨论】: