Ich möchte meinen Code lesbarer machen und Tools wie IDE-Code-Inspektion und/oder statische Code-Analyse (FindBugs und Sonar) verwenden, um NullPointerExceptions zu vermeiden. Viele der Tools scheinen inkompatibel mit den anderen zu sein. @NotNull
/ @NonNull
/ @Nonnull
Annotation und die Auflistung aller von ihnen in meinem Code wäre schrecklich zu lesen. Irgendwelche Vorschläge, welche die "beste" ist? Hier ist die Liste der gleichwertigen Annotationen, die ich gefunden habe:
-
javax.validation.constraints.NotNull
Erstellt für die Laufzeitvalidierung, nicht für die statische Analyse.
Dokumentation -
edu.umd.cs.findbugs.annotations.NonNull
Benutzt von FindBugs ( totes Projekt ) und dessen Nachfolger SpotBugs statische Analyse und damit Sonar (jetzt Sonarqube )
FindBugs-Dokumentation , SpotBugs-Dokumentation -
javax.annotation.Nonnull
Dies könnte auch mit FindBugs funktionieren, aber JSR-305 ist inaktiv. (Siehe auch: Wie ist der Status von JSR 305? ) Quelle -
org.jetbrains.annotations.NotNull
Wird von IntelliJ IDEA IDE für die statische Analyse verwendet.
Dokumentation -
lombok.NonNull
Dient zur Steuerung der Codeerzeugung in Projekt Lombok .
Platzhalter-Anmerkung, da es keine Norm gibt.
Quelle , Dokumentation -
androidx.annotation.NonNull
Marker-Anmerkung in Android verfügbar, bereitgestellt durch das Annotation-Paket
Dokumentation -
org.eclipse.jdt.annotation.NonNull
Wird von Eclipse für die statische Codeanalyse verwendet
Dokumentation