3 回答
TA贡献1883条经验 获得超3个赞
这可能是从C学习的习惯,以避免这种拼写错误(单一=
而不是双重==
):
if (object = null) {
将常量放在左侧的约定==
在Java中并不真正有用,因为Java要求表达式if
求值为一个boolean
值,所以除非常量是a boolean
,否则你会得到一个编译错误。参数。(如果它是一个布尔值,你不应该使用==
...)
TA贡献1891条经验 获得超3个赞
正如其他人所说,这是从C中学到的习惯,以避免拼写错误 - 尽管即使在C中我也希望有足够警告级别的优秀编译器发出警告。正如Chandru所说,以这种方式与Java中的null进行比较只会导致问题,如果您使用的是类型变量Boolean
(您不在示例代码中)。我会说这是一种非常罕见的情况,而且不值得改变你在其他地方编写代码的方式。(即使在这种情况下,我也不会费心扭转操作数;如果我想清楚地考虑反转它们,我相信我可以算出等号。)
什么也没有被提及的是,很多人(当然我自己在内)发现的if (variable == constant)
形式可读性更强-这是表达自己的更自然的方式。这是不要盲目地从C复制约定的原因。在假设在一个环境中可能有用的东西在另一个环境中有用之前,你应该总是质疑实践(就像你在这里做的那样:)。
TA贡献1780条经验 获得超1个赞
除了对象的类型之外,这在Java(1.5+)中没有多大价值Boolean
。在这种情况下,这仍然可以很方便。
if (object = null)
如果是对象,则不会导致Java 1.5+中的编译失败,Boolean
但会NullPointerException
在运行时抛出。
添加回答
举报