¿Cómo decirle a IDEA / Studio que se ha realizado la comprobación nula?
Estoy desarrollando con Android Studio / IntelliJ IDEA.
He habilitado la verificación de inspección llamada "Condiciones y excepciones constantes" que muestra una advertencia si estoy arriesgando un NPE, como:
String foo = foo.bar(); // Foo#bar() is @nullable
if (foo.contains("bar")) { // I'm living dangerously
...
}
Tengo lo siguiente en mi código:
String encoding = contentEncoding == null ? null : contentEncoding.getValue();
if (!TextUtils.isEmpty(encoding) && encoding.equalsIgnoreCase("gzip")) {
inputStream = new GZIPInputStream(entity.getContent());
} else {
inputStream = entity.getContent();
}
Aquí está el código fuente deTextUtils#isEmpty(String)
:
/**
* Returns true if the string is null or 0-length.
* @param str the string to be examined
* @return true if str is null or zero length
*/
public static boolean isEmpty(CharSequence str) {
if (str == null || str.length() == 0)
return true;
else
return false;
}
No estoy arriesgando ninguna NPE porqueTextUtils#isEmpty(String)
regresaría fiel a unnull
puntero.
Sin embargo todavía estoy recibiendo la pequeñaMethod invocation 'encoding.equalsIgnoreCase("gzip")' may produce 'java.lang.NullPointerException'
Advertencia, que puede ser molesto.
¿Es posible hacer que esta comprobación sea más inteligente e ignorar la advertencia de NPE si ya se ha realizado una comprobación nula?