空检查的编码标准

Suj*_*ith 6 java coding-style

可能重复:
比较差异是什么?
Java中的空检查

大多数开发人员都习惯在左侧写入null检查null.like,

if(null == someVariable)
Run Code Online (Sandbox Code Playgroud)

这有帮助吗?据我说,这影响了代码的可读性.

T.J*_*der 15

不,它在Java中没有任何意义.

在C及其一些相关语言中,它有时用于避免犯这个错误:

if (someVariable = null)
Run Code Online (Sandbox Code Playgroud)

注意=而不是==,作者无意中分配nullsomeVariable而不是检查null.但这将导致Java中的编译器错误.

即使在C语言中,任何现代编译器都可以选择将其if (someVariable = null)视为警告(甚至是错误).

风格上,我同意你的观点-我不会说:"如果你21的,我将竭诚为您提供饮料"(除非我已经有一对夫妇数,并做我的尤达假冒).请注意,那是英语; 就我所知,在其他语言中它会非常有意义,在这种情况下,对于这些语言的发言者来说,这将是非常合理的风格.


Mit*_*eat 5

当C编译器不想抱怨错过时=,它过去常常帮助"过去的日子" ,当想要==:

// OOps forgot an equals, and got assignment
if (someVariable = null) 
{
}
Run Code Online (Sandbox Code Playgroud)

任何现代的C#/ Java/C++/C编译器都应该发出警告(希望是错误).

就个人而言,我发现

if (someVariable == null) 
{
}
Run Code Online (Sandbox Code Playgroud)

比开始时更易读null.