空检查编码标准

时间:2013-03-20 08:52:52

标签: java android syntax coding-style null

我对空检查的编码标准有疑问。 我想知道

之间的区别
if(a!=null)

if(null!=a)

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

6 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:8)

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

null != a是Java,C ++等编程语言中的旧练习(称为 Yoda条件)。 因为写if (a = null)并意外地将null分配给a是有效的,所以首先写null警卫阻止此事故发生点。

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

如果声明基于表达结果而起作用,那么它们之间没有区别 所以你写if(a!=null)if(null!=a)会产生真或假,然后评估结果。

所以你写下你喜欢的内容并不重要

答案 5 :(得分:1)

它们都是一样的。虽然第一个变体是常见的,但如果您知道第一个变量不为空

,则第二个变体很有用

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

String str = "somevalue"; 

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

if("somevalue".equals(str)) { }

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