空检查编码标准

关于空检查的编码标准我有疑问。 我想知道它们之间的区别

if(a!=null) 

 if(null!=a) 

哪一个更好,哪一个使用,为什么?

两者在Java中都是相同的,因为只有布尔表达式可以在if中。 这只是程序员的编码风格偏好,大多数都使用null != a

null != a是Java,C ++等编程语言中的一种古老习惯 (称为Yoda Conditions )。
因为写入if (a = null)并且意外地将null分配给a所以写入null是有效的,所以首先是一个防止此事故发生的警卫

没有区别。 但第一种更常见。 第二个也被称为“尤达条件”,因为它不自然的“语法”。

一旦我在一个编程指南要使用的项目中工作if (null != a)因为他们认为开发人员更容易理解常量值必须首先出现(如CONSTANT_VALUE.equals(variable)那对我来说太烦人了。

他们都是一样的。 这取决于你的编码风格。

从编译器的角度来看,它们完全相同。 但是第一种forms更具可读性,所以我建议你使用那种forms。

如果语句基于表达式的结果工作,那么它们之间没有区别所以你写if(a!=null)if(null!=a)将产生true或false然后评估结果。

所以你写下你喜欢的东西并不重要

它们都是一样的。 虽然第一个变体是常见的,但如果您知道第一个变量不为null,则第二个变体很有用

示例"some value".equals(your_variable) ,某些值可以是您知道的非null值。 当your_variablenull时,这将避免NPE。

 String str = "somevalue"; if(str != null && str.equals("somevalue")) { } if("somevalue".equals(str)) { } 

如果strnull则两个条件都相同。