Android Studio: suprimir advertencia de pelusa para la instrucción if
Tengo este código en algún lugar de mi proyecto de Android:
public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) { if (privateLoad && privateLoadInProgress) { return true; } if (publicLoad && publicLoadInProgress) { return true; } return false; }
Tengo una advertencia pelusa en la segunda declaración if: 'if' declaración podría ser simplificado. Eso es, obviamente, porque yo también podría escribir:
- Crear una anotación Java con comportamiento contextual IDE
- android @Suppress errores vs @ TargetApi
- Suprimir AndroidManifest.xml Advertencia relacionada con minSdkVersion
- Android Studio - elimina la advertencia de excepción de seguridad
- ¿Qué es @SuppressWarnings ("depreciación") y ("no utilizado") en Android?
return publicLoad && publicLoadInProgress;
Sin embargo, me gustaría mantenerlo de esta manera para la legibilidad. Sé que hay alguna anotación de comentarios en línea para apagar la advertencia de pelusa en ese lugar, pero no puedo encontrarla en la documentación de Lint de Android . ¿Puede decirme qué fue esta anotación / comentario?
- Cómo configurar ProGuard para omitir métodos con SupressWarning ("unused")
- Gradle imprime la advertencia aunque se selecciona SuppressWarnings
- Nivel de la API de Android <19 y "prueba puede utilizar la administración de recursos automática" warning
- Cómo suprimir la advertencia "Se puede reemplazar con foreach"
- Suprimir advertencia de pelusa en el nivel de vista
- Cómo suprimir Android Lint advertencia en Gradle script
- ¿Hay alguna manera de declarar suprimir las advertencias a la declaración del método?
El comentario de código simple para desactivar la advertencia es:
//noinspection SimplifiableIfStatement
Esto en la parte superior de la instrucción if debería desactivar la advertencia sólo en ese lugar.
En el ejemplo, esto sería:
public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) { if (privateLoad && privateLoadInProgress) { return true; } //noinspection SimplifiableIfStatement if (publicLoad && publicLoadInProgress) { return true; } return false; }
Puede agregar @SuppressWarnings("SimplifiableIfStatement")
encima de su método.
No es un error de Lint de Android. Puedes usar:
@SuppressWarnings("RedundantIfStatement") public static boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) { if (privateLoad && privateLoadInProgress) { return true; } if (publicLoad && publicLoadInProgress) { return true; } return false; }
En la opción resaltada, puede usar el acceso directo alt-enter para abrir el menú contextual y seleccionar Simplify > Suppress for method
(mantener el ámbito lo más pequeño posible).
Por supuesto:
En archivos .java, puede suprimir problemas con las anotaciones @SuppressLint. Suministra el ID de problema de pelusa como el argumento a las anotaciones.
Ejemplo:
@SuppressLint("AndroidWarningId") public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) { if (privateLoad && privateLoadInProgress) { return true; } if (publicLoad && publicLoadInProgress) { return true; } return false; }
Simplemente reemplace el AndroidWarningId con la advertencia correspondiente, puede encontrar los aquí
Aunque yo sugeriría simplificarlo de esta manera:
public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) { if (privateLoad && privateLoadInProgress || publicLoad && publicLoadInProgress) { return true; } return false; }
Es aún legible y utiliza menos espacio (algo feo, pero mejor que una supresslint).
También puede suprimir más de un problema utilizando una lista separada por comas:
@SuppressLint ({"NewApi", "StringFormatInvalid"})
¡Aclamaciones!