Wie teilt man IDEA / Studio mit, dass die Nullprüfung durchgeführt wurde?

Ich entwickle mit Android Studio / IntelliJ IDEA.

Ich habe die Inspektionsprüfung "Konstante Bedingungen und Ausnahmen" aktiviert, die eine Warnung anzeigt, wenn ich eine NPE riskiere, wie z.

String foo = foo.bar(); // Foo#bar() is @nullable
if (foo.contains("bar")) { // I'm living dangerously
    ...
}

In meinem Code ist Folgendes enthalten:

String encoding = contentEncoding == null ? null : contentEncoding.getValue();
if (!TextUtils.isEmpty(encoding) && encoding.equalsIgnoreCase("gzip")) {
    inputStream = new GZIPInputStream(entity.getContent());
} else {
    inputStream = entity.getContent();
}

Hier ist der Quellcode vonTextUtils#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;
}

Ich riskiere keine NPE, weilTextUtils#isEmpty(String) würde zu a zurückkehrennull Zeiger.

Allerdings bekomme ich immer noch die kleinenMethod invocation 'encoding.equalsIgnoreCase("gzip")' may produce 'java.lang.NullPointerException' Warnung, die ärgerlich sein kann.

Ist es möglich, diese Prüfung intelligenter zu gestalten und die NPE-Warnung zu ignorieren, wenn bereits eine Nullprüfung durchgeführt wurde?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage