Kann @Nullable in javax.annotation nicht finden.*

Lesezeit: 4 Minuten

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

Benutzer-Avatar
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 a javax-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

Benutzer-Avatar
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>

Benutzer-Avatar
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 hat compile 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 Artefakt com.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 nur compile 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 imports.

Benutzer-Avatar
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.

Benutzer-Avatar
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'

1342390cookie-checkKann @Nullable in javax.annotation nicht finden.*

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy