Ich möchte verwenden @Nullable
Anmerkung zu beseitigen NullPointerExceptions
. Ich habe einige Tutorials im Netz gefunden, mir ist aufgefallen, dass diese Anmerkung aus dem Paket stammt javax.annotation.Nullable
; aber wenn ich es importiere, wird ein Kompilierungsfehler generiert: Symbol kann nicht gefunden werden
Kann @Nullable in javax.annotation nicht finden.*
David
Sie müssen ein Glas einschließen, in dem diese Klasse existiert. Sie können es finden hier
Wenn Sie Maven verwenden, können Sie die folgende Abhängigkeitserklärung hinzufügen:
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
</dependency>
und für Gradle:
dependencies {
testImplementation 'com.google.code.findbugs:jsr305:3.0.2'
}
-
Warum stellt Google (insbesondere sein findbugs-Artefakt) Typen bereit, die zu den gehören
javax
Paket? Gibt es nicht ein Artefakt mit ajavax
-Gruppen-ID mit Präfix, die diesen Typ bereitstellt?– Andreas Schwan
22. April 2016 um 4:02 Uhr
-
@AndrewSwan es scheint, dass der Autor die groupId von gewählt hat
com.google.code.findbugs
weil es auf der Code-Hosting-Lösung von Google gehostet wurde– matt b
3. Januar 2017 um 17:11 Uhr
-
Google-findbugs ist die Referenzimplementierung von jsr305, daher dürfen sie den javax-packageName verwenden, denke ich.
– Eisradierer
12. Dezember 2019 um 13:36 Uhr
-
Immer noch relevant für Prahlerei-Generator
– Markian Benovskyi
9. Dezember 2020 um 11:08 Uhr
-
Ich erhalte diesen Fehler, seit ich mein IntelliJ aktualisiert habe. verdammt.
– Mehraj Malik
18. Oktober 2021 um 7:00 Uhr
jan
Das Artefakt wurde entfernt net.sourceforge.findbugs
zu
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.0</version>
</dependency>
mkobit
Wenn Sie Gradle verwenden, können Sie die Abhängigkeit wie folgt einschließen:
repositories {
mavenCentral()
}
dependencies {
compile group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.0'
}
-
Ich habe es versucht und bekam einen Fehler: Methode compile() für Argumente konnte nicht gefunden werden [{group=com.google.code.findbugs, name=jsr305, version=3.0.0}] auf org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@7b35fdf2.
– Kamal
1. Juli 2016 um 17:54 Uhr
-
@kamal bei obigem beispiel geht man generell davon aus das du das angewendet hast
'java'
(oder ein anderes) Plugin, das das bereits erstellt hatcompile
Aufbau.– mkobit
15. November 2016 um 17:08 Uhr
-
javax.annotation.Nullable kann nicht importiert werden; Ich habe jsr250-api-1.0.jar in meinem Klassenpfad. Ich habe sogar versucht, Maven Pom zu aktualisieren
<dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>3.0.0</version> </dependency>
Eclipse gab Fehler aus: Fehlendes Artefaktcom.google.code.findbugs:jsr305:jar:3.0.0 Failure to transfer com.google.code.findbugs:jsr305:jar:3.0.0
– Sam-T
12. Januar 2017 um 19:12 Uhr
-
Es hat endlich funktioniert jsr305-3.0.1.jar – irgendein Eclipse-CP-Problem. Ja, endlich wird es nach dem externen JAR-Import in Eclipse kompiliert
– Sam-T
12. Januar 2017 um 19:53 Uhr
-
Da das Glas zur Laufzeit nicht benötigt wird, verwenden Sie
compileOnly group...
statt nurcompile group...
– Renato
10. März 2018 um 9:14 Uhr
JSR-305 ist ein “Java Specification Request”, um die Spezifikation zu erweitern. @Nullable
usw. gehörten dazu; Es scheint jedoch seitdem “ruhend” (oder eingefroren) zu sein (siehe diese SO-Frage). Um diese Anmerkungen zu verwenden, müssen Sie die Bibliothek also selbst hinzufügen.
FindBugs wurde umbenannt in SpotBugs und wird unter diesem Namen entwickelt.
Für Maven ist dies die aktuell Nur Anmerkung Abhängigkeit (andere Integrationen hier):
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-annotations</artifactId>
<version>4.2.0</version>
</dependency>
Wenn Sie das vollständige Plugin verwenden möchten, lesen Sie die Dokumentation von SpotBugs.
Falls jemand dies beim Versuch hat, ein Android-Projekt zu kompilieren, gibt es eine alternative Nullable-Implementierung in android.support.annotation.Nullable
. Achten Sie also darauf, auf welches Paket Sie in Ihrer verwiesen haben import
s.
Crawton
Wenn jemand dieses Problem beim externen Erstellen eines in IntelliJ IDEA erstellten Maven-Projekts hat, habe ich anstelle der Antwort die folgende Abhängigkeit verwendet:
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>15.0</version>
</dependency>
Dadurch kann das Projekt auf IntelliJ IDEA aufbauen und selbst Maven verwenden.
Du kannst es finden hier.
Jay Dangar
Sie können die neueste Version davon hinzufügen, indem Sie die folgende Zeile in Ihre gradle.build einfügen.
implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.2'