空检查编码标准

Abx*_*Abx 1 java syntax null android coding-style

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

if(a!=null)
Run Code Online (Sandbox Code Playgroud)

if(null!=a)
Run Code Online (Sandbox Code Playgroud)

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

Kai*_*Kai 8

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

一旦我在一个使用编码指南的项目中工作,if (null != a)因为他们认为开发人员更容易理解常量值必须始终排在第一位(如同CONSTANT_VALUE.equals(variable).这对我来说非常烦人).

  • 虽然尤达通常首先将已知的常数称为"无效".例如`"bar".equals(foo)` (3认同)

Shr*_*ari 8

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

null != a是Java,C++等编程语言(称为Yoda Conditions)的一种古老习惯. 由于编写和意外分配给写作是有效的,首先是一名警卫阻止这次事故的发生.
if (a = null)nullanull

  • 考虑放弃"大多数使用null!= a".最新的开发人员如果习惯于编程语言的工作方式而不是盲目地应用以前的语言范例,那么他们会喜欢Java中的(object!= null)格式.这是因为它更符合逻辑,而相反的模式在Java中完全没有任何好处.因此,应该在Java中不鼓励"无效的第一"模式,因为绝对没有任何好处和牺牲可读性. (4认同)
  • 谢谢.我现在知道了,最后一部分真的很有帮助 (2认同)