我对空检查的编码标准有疑问。我想知道两者的区别
if(a!=null)
和
if(null!=a)
哪个更好,使用哪个,为什么?
我对空检查的编码标准有疑问。我想知道两者的区别
if(a!=null)
和
if(null!=a)
哪个更好,使用哪个,为什么?
没有区别。但第一种更为常见。第二个也被称为“尤达条件”,因为它不自然的“语法”。
有一次我在一个项目中使用编码指南,if (null != a)
因为他们认为开发人员更容易理解常量值必须始终放在第一位(如CONSTANT_VALUE.equals(variable)
. 这对我来说很烦人。
两者在 Java 中是相同的,因为只有布尔表达式可以在 if 中。这只是程序员的一种编码风格偏好,他们中的大多数人使用null != a
.
这是Java、C++ 等编程语言(称为Yoda 条件)null != a
中的一种古老做法。
因为它是有效的,并且不小心分配给了所以写首先是一个防止这种事故发生的后卫。if (a = null)
null
a
null
他们都是一样的。这取决于您的编码风格。
从编译器的角度来看,它们完全相同。但是第一种形式更具可读性,所以我建议你使用那个形式。
如果语句基于表达式的结果起作用,则它们之间没有区别,因此您编写if(a!=null)
或if(null!=a)
将产生真或假,然后评估结果。
所以不管你写你喜欢哪个
他们都是一样的。尽管第一个变体很常见,但如果您知道第一个变量不为空,则第二个变体很有用
例如"some value".equals(your_variable)
,某个值可以是您知道不为空的任何值。your_variable
这将在is时避免 NPE null
。
String str = "somevalue";
if(str != null && str.equals("somevalue")) { }
if("somevalue".equals(str)) { }
str
无论是null
与否,这两个条件都将相同。