Wie teilt IDEA / Studio mit, dass der Null-Check durchgeführt wurde?

8

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 zum Beispiel:

%Vor%

Ich habe Folgendes in meinem Code:

%Vor%

Hier ist der Quellcode von TextUtils#isEmpty(String) :

%Vor%

Ich riskiere keine NPE, weil TextUtils#isEmpty(String) zu einem null -Zeiger zurückkehren würde.

Allerdings bekomme ich immer noch die kleine Method invocation 'encoding.equalsIgnoreCase("gzip")' may produce 'java.lang.NullPointerException' Warnung, was nervig sein kann.

Ist es möglich, diese Überprüfung schlauer zu machen und die NPE-Warnung zu ignorieren, wenn bereits eine Nullprüfung durchgeführt wurde?

    
Benoit Duffez 10.10.2013, 17:19
quelle

4 Antworten

17

Sie können sich den Link ansehen, den Peter Gromov in seiner Antwort erwähnt hat.

Erstellen Sie einige einfache Klassen, die Ihren Einstellungen ähneln:

Eine Klasse mit einer Methode, annotiert mit @Nullable :

Die Klasse TextUtil mit der Methode isEmpty :

Und schließlich die Hauptklasse, die TextUtil#isEmpty aufruft:

Wenn Sie nun File -> Settings... eingeben und zu Inspections ->Constant conditions & exceptions gehen, können Sie die Configure Assert/Check Methods ändern, um für Ihre isEmpty -Methode zu sorgen:

Fügen Sie eine neue IsNull Prüfmethode hinzu:

Geben Sie die TextUtil -Klasse, isEmpty -Methode und CharSequence -Parameter ein:

Dies gibt dieses Assert/Check Method Configuration window:

Drücken Sie Ok und dann Ok erneut, um zur Editor-Ansicht zurückzukehren, und Sie werden feststellen, dass die Inspektion verschwunden ist:

Sie sagen IntelliJ, dass die isEmpty -Methode eine Nullprüfung für den Parameter str vornimmt.

    
maba 11.10.2013, 13:24
quelle
8

Sie könnten //noinspection ConstantConditions verwenden, wodurch die NPE-Warnung für die folgende Zeile wie folgt entfernt wird:

%Vor%     
Olivier Payen 25.08.2016 10:02
quelle
3

Sie können @SuppressWarnings("ConstantConditions") Annotation

verwenden %Vor%     
jk2K 19.02.2017 09:49
quelle
1

Siehe Ссылка für IDEA 12. In IDEA 13 EAP können Sie den Methodenvertrag hinzufügen: Ссылка

    
Peter Gromov 11.10.2013 10:02
quelle

Tags und Links