Ich stimme alex2k8 zu. Wahrscheinlich liegt dies am _closed-Datenelement. Seine Initialisierung ist irrelevant, solange sie nicht als final deklariert ist. Statische Analyse hat keine generischen Mittel zur Bestimmung der tatsächlichen Werte von _closed zur Laufzeit, und keine Software kann es jemals tun (es ist äquivalent zu dem Anhalten Problem ).
Ich habe FindBugs Quellen genommen und nach
gesucht %Vor%Zwei Dateien gefunden:
Beide betrachten nur "bedingungslose Parameter-Dereferenzierung".
Sieht so aus, als ob FindBugs NICHT so nützlich ist, um Nullzeigerprobleme zu finden: - (
P.S.
%Vor%@Nullable nur für diejenigen Parameter, Methoden oder Felder, die NULL sein dürfen.
Scheint so, als erlaubst du Nullwerte für die Textvariable. Sie sollten wahrscheinlich stattdessen @NonNull verwenden.
Bearbeiten
Ich habe es selbst ausprobiert und das gleiche Ergebnis erzielt.
Der Text in der Findbugs-Fehlermeldung (aus der zweiten Methode, die den Nullpointer-Fehler ergibt) sagt:
Dieser Parameter wird immer in einer Weise verwendet, die erfordert, dass er nicht null ist. Der Parameter wird jedoch explizit als nullwertannotiert. Entweder ist die Verwendung des Parameters oder der Anmerkung falsch.
Meine Annahme wäre, dass, da es sich nicht um einen finalen Parameter handelt, FindBugs keine Annahmen über die Wert von _closed, da Sie es zu einem späteren Zeitpunkt ändern können. Ich habe sogar versucht, die Methode _closed variabel innerhalb der m1-Methode zu definieren, und sie meldet es immer noch nicht als Fehler.
edu.umd.cs.findbugs.annotations.Nullable [Ziel] Feld, Methode, Parameter
Das mit Anmerkungen versehene Element könnte unter bestimmten Umständen null sein. Im Allgemeinen bedeutet dies, dass Entwickler die Dokumentation lesen müssen, um festzustellen, wann ein Nullwert akzeptabel ist und ob nach einem Nullwert gesucht werden muss. FindBugs behandelt die mit Anmerkungen versehenen Elemente so, als ob sie keine Anmerkung hätten.
In der Praxis ist diese Anmerkung nur zum Überschreiben einer übergreifenden NonNull-Annotation nützlich.
Tags und Links java static-analysis findbugs