Android Studio:为if语句抑制lint警告

时间:2015-09-01 07:52:19

标签: android android-studio lint suppress-warnings

我的Android项目中有一个代码:

public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) {
    if (privateLoad && privateLoadInProgress) {
        return true;
    }
    if (publicLoad && publicLoadInProgress) {
        return true;
    }
    return false;
}

我在第二个if语句中得到一个lint警告:'if'语句可以简化。这显然是因为我也可以写:

return publicLoad && publicLoadInProgress;

但是,为了便于阅读,我想保持这种方式。我知道有一些内联注释注释用于关闭那个地方的lint警告,但我在Android Lint documentation中找不到它。你能告诉我这个注释/评论是什么吗?

4 个答案:

答案 0 :(得分:20)

禁用警告的简单代码注释是:

//noinspection SimplifiableIfStatement

在if语句之上,只应在那个地方关闭警告。

在示例中,这将是:

public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) {
    if (privateLoad && privateLoadInProgress) {
        return true;
    }

    //noinspection SimplifiableIfStatement
    if (publicLoad && publicLoadInProgress) {
        return true;
    }
    return false;
}

答案 1 :(得分:11)

您可以在方法上方添加@SuppressWarnings("SimplifiableIfStatement")

答案 2 :(得分:8)

这不是Android Lint错误。您可以使用:

@SuppressWarnings("RedundantIfStatement")
public static boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) {
    if (privateLoad && privateLoadInProgress) {
        return true;
    }
    if (publicLoad && publicLoadInProgress) {
        return true;
    }
    return false;
}

在突出显示的if处,您可以使用alt-enter快捷键打开上下文菜单,然后选择Simplify > Suppress for method(尽可能缩小范围)。

答案 3 :(得分:0)

不确定

  

在.java文件中,您可以抑制@SuppressLint的问题   注释。您提供lint问题ID作为参数   注释

实施例:

@SuppressLint("AndroidWarningId")
public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) {
    if (privateLoad && privateLoadInProgress) {
        return true;
    }
    if (publicLoad && publicLoadInProgress) {
        return true;
    }
    return false;
}


只需将AndroidWarningId替换为相应的警告,您可以在here

中找到它们 虽然我建议用这种方式简化它:

public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) {
    if (privateLoad && privateLoadInProgress
     || publicLoad && publicLoadInProgress) {
        return true;
    }

    return false;
}

它仍然可读并且使用较少的空间(虽然有点丑,但比supresslint更好)。

您还可以使用逗号分隔列表来抑制多个问题:

  

@SuppressLint({ “NewApi”, “StringFormatInvalid”})

干杯!