空校验编码标准[复制](Null check coding standard [duplicate]

2019-07-22 02:06发布

这个问题已经在这里有一个答案:

  • 其中有更好的表现:!测试= null或空=测试 8个答案

我有一个关于编码空校验标准的疑问。 我想知道的区别

if(a!=null)

if(null!=a)

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

Answer 1:

两者都是在Java中一样,因为只有布尔表达式可如果内部。 这仅仅是一个由程序员编码风格偏好,大部分都使用null != a

null != a老的做法像Java,C ++(称为尤达条件 )的编程语言。
因为它是有效的写if (a = null)和意外分配nulla所以写null一个后卫阻止这种情况发生的事故



Answer 2:

没有区别。 但首先是比较常见的。 第二个也被称为“尤达条件”,因为它不自然的“语法”的。

有一次,我在一个项目工作,其中编码准则是使用if (null != a)因为他们认为这是更容易为开发商明白,定值必须是第一位的始终(如CONSTANT_VALUE.equals(variable)那是非常讨厌我。



Answer 3:

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



Answer 4:

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



Answer 5:

速滑运动员的肌肉他们没有区别,如果基于表达式的结果声明的作品,这样你们写或者if(a!=null)或者if(null!=a)会产生真或假,那么结果进行评估。

因此,它并不重要,你写你喜欢



Answer 6:

他们都是一样的。 虽然第一种变体常见的,如果你知道第一个变量是不是空的第二个变体是很有用的

例如"some value".equals(your_variable)某些值可以是你知道的任何值不为空。 这将避免NPE时your_variablenull

String str = "somevalue"; 

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

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

如果这两个条件将是相同的strnull或不是。



文章来源: Null check coding standard [duplicate]