Android Studio:抑制 if 语句的 lint 警告
Android Studio: suppress lint warning for if statement
我的 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 中找不到它。你能告诉我这个 annotation/comment 是什么吗?
当然可以:
In .java files, you can suppress issues with the @SuppressLint
annotations. You supply the lint issue id as the argument to the
annotations.
示例:
@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;
}
它仍然可读并且使用较少 space(虽然有点丑,但比 supresslint 好)。
您还可以使用逗号分隔列表抑制多个问题:
@SuppressLint({"NewApi","StringFormatInvalid"})
干杯!
这不是 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 快捷方式打开上下文菜单和 select Simplify > Suppress for method
(保持范围尽可能小)。
禁用警告的简单代码注释为:
//noinspection SimplifiableIfStatement
在 if 语句之上的这个应该只在那个地方关闭警告。
在示例中,这将是:
public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) {
if (privateLoad && privateLoadInProgress) {
return true;
}
//noinspection SimplifiableIfStatement
if (publicLoad && publicLoadInProgress) {
return true;
}
return false;
}
您可以在您的方法上方添加 @SuppressWarnings("SimplifiableIfStatement")
。
我的 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 中找不到它。你能告诉我这个 annotation/comment 是什么吗?
当然可以:
In .java files, you can suppress issues with the @SuppressLint annotations. You supply the lint issue id as the argument to the annotations.
示例:
@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;
}
它仍然可读并且使用较少 space(虽然有点丑,但比 supresslint 好)。
您还可以使用逗号分隔列表抑制多个问题:
@SuppressLint({"NewApi","StringFormatInvalid"})
干杯!
这不是 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 快捷方式打开上下文菜单和 select Simplify > Suppress for method
(保持范围尽可能小)。
禁用警告的简单代码注释为:
//noinspection SimplifiableIfStatement
在 if 语句之上的这个应该只在那个地方关闭警告。
在示例中,这将是:
public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) {
if (privateLoad && privateLoadInProgress) {
return true;
}
//noinspection SimplifiableIfStatement
if (publicLoad && publicLoadInProgress) {
return true;
}
return false;
}
您可以在您的方法上方添加 @SuppressWarnings("SimplifiableIfStatement")
。