Ich sah einige Methode in Java deklariert als:
void foo(@Nullable Object obj)
{ ... }
Was bedeutet @Nullable
hier? Bedeutet es, dass die Eingabe null
sein kann?
Ohne die Anmerkung kann die Eingabe immer noch null sein, also nehme ich an, dass es nicht nur das ist?
Es macht deutlich, dass die Methode Nullwerte akzeptiert, und dass Sie, wenn Sie die Methode überschreiben, auch Nullwerte akzeptieren sollten.
Es dient auch als Hinweis für Code-Analysatoren wie FindBugs. Wenn zum Beispiel eine solche Methode ihr Argument dereferenziert, ohne zuerst auf Null zu prüfen, wird FindBugs eine Warnung ausgeben.
Diese Anmerkung wird häufig verwendet, um NullPointerExceptions
zu vermeiden. @Nullable" sagt oft, dass dieser Parameter null
sein kann. Ein gutes Beispiel für ein solches Verhalten kann in Google Guice gefunden werden. In diesem leichtgewichtigen Dependency Injection Framework sagt man, dass diese Abhängigkeit null
sein könnte. Wenn Sie versuchen würden, null
ohne Annotation zu übergeben, würde sich das Framework weigern, seine Aufgabe zu erfüllen.
Außerdem kann @Nullable
mit der Annotation @NotNull
verwendet werden. Hier finden Sie einige Tipps, wie Sie diese richtig verwenden. Die Code-Inspektion in IntelliJ überprüft die Annotationen und hilft beim Debuggen des Codes.
Verschiedene Werkzeuge können die Bedeutung von @Nullable
unterschiedlich interpretieren. Zum Beispiel behandeln das Checker Framework und FindBugs @Nullable
unterschiedlich.