什么是更好的java语法:if(isSomething()== false){或if(!isSomething()){

时间:2010-12-16 13:08:18

标签: java syntax coding-style

如果你看一下

if (!x) {
if (x == false) {

看起来像!x更好,但是

if (!isSomething()) {
if (isSomething() == false) {

你可以轻松监督!

怎么办?有推荐吗?

4 个答案:

答案 0 :(得分:12)

隐藏的第三个选项是正确命名变量和方法。

而不是

if (!isDisabled()) {
    ...
}

使用

if (isEnabled()) {
    ...
}

或者如果你想检查否定:

boolean disabled = !isEnabled();
if (disabled) {
    ...
}

或添加两种方法:

boolean isDisabled() {
    return !isEnabled();
}

编辑:我发现了这个问题:Is it bad to explicitly compare against boolean constants e.g. if (b == false) in Java?

答案 1 :(得分:7)

我会坚持使用符号if (!isSomething()) {。如果您或其他人发现难以阅读,您可以随时在“!”周围添加一些空格。为了让它脱颖而出:

if ( ! isSomething()) {if ( !isSomething()) {

此外,使用以下符号

可能会使多个条件语句变得势不可挡

if (isSomething() == false && isSomethingElse() == false && ..)

而其替代方案简短而简洁。过了一会儿,自然会读到'!'以及“not isSomething()而不是isSomethingElse()”的陈述。

答案 2 :(得分:3)

我认为没有任何人会遵循的建议。

按照自己的方式行事,我会选择if (!isSomething())风格:)

特别是因为我已经选择了if (!x)风格。

答案 3 :(得分:2)

if ( !isSomething() ) {
在我看来,

是最好的。这样你就可以保持字符倒计时,你的代码是可读的,并且!在开始时确实很突出,所以只需浏览代码,其他人就可以看到它的意图。