Unterdrücken mögliche NullPointerException in Android Studio
Diese:
@Nullable
Item[] mItems;
public Item getItem(int position) {
return mItems[position];
}
produziert die Warnung:
Array access 'mItems[position]' may produce NullPointerException
Will ich um diese Warnung zu unterdrücken (ich weiß, dass getItem()
wird nicht aufgerufen werden, wenn mItems
null ist).
Ich habe versucht, mit folgenden Anmerkungen:
@SuppressWarnings({"NullableProblems"})
@SuppressWarnings({"null"})
sowie mit der //noinspection
notation, aber Sie sind alle nicht arbeiten.
Mit @SuppressWarnings({"all"})
funktioniert, aber es ist natürlich nicht das, was ich Suche.
Android Studio nicht bieten jede Unterdrückung option, wenn ich drücken Sie alt + enter, nur sind die Optionen zum hinzufügen einer (nutzlosen) null-check.
- Bitte nicht löschen und re-post die gleiche Frage; verwenden Sie die Schaltfläche "Bearbeiten" hinzufügen, um zusätzlichen Kontext auf Ihre Frage.
- Vorherigen posting war ein Unfall (ich enter gedrückt, während das hinzufügen von tags und es gepostet hat), die Frage war nicht bereit. Ich habe versucht es Bearbeiten danach, aber es war nicht möglich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies funktioniert für mich, aber nicht sicher, warum, WIE würde wollen, verwenden Sie Konstante Bedingungen als suppressor. Ich denke es hat etwas zu tun mit der skip-null-check, da es ein konstanter Zustand sein (d.h., es werden immer nicht null sein).
Wenn Sie möchten, um zu verhindern, dass Android Studio aus stört Sie mit diesen Warnungen, während Sie in den compiler-gehen Sie einfach auf Einstellungen -> Editor -> Inspektionen -> Konstante Bedingungen und Ausnahmen, und deaktivieren Sie es.
Wenn Sie stattdessen möchten, um vollständig zu entfernen es dann die richtige SuppressWarnings wie vorgeschlagen, durch die anderen Antworten :
Für mich
@SuppressWarnings
hat nicht funktioniert. Ich habe nur nochassert
- Anweisung, bevor Sie die Warnungen, um es Weg.Ihr code sollte wie folgt Aussehen:
Ich weiß, Sie sagte, dass Sie sicher sind, dass die
getItem()
wird nicht aufgerufen werden, wennmItems
istnull
. Aber der Inspektor wird nicht berücksichtigt, dass Sie bereits vor dem Aufruf der Funktion, daher die Warnung.Oder Sie können nur lassen Sie es da
mItems = null
wird nie passieren. Aber dein code sieht irgendwie chaotisch, und für mich ist es ärgerlich.@SuppressWarnings("ConstantConditions") funktioniert der trick für mich.