Geben Sie Ihre Benutzervorgaben für die Fehler-/Warnungseinstellungen auf der Benutzervorgabenseite
Java > Compiler > Fehler/Warnungen an.
Option |
Beschreibung |
Standardwert |
---|---|---|
Nicht statischer Zugriff auf statisches Member |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn in einem Ausdrucksempfänger auf ein statisches Feld oder eine Methode zugegriffen wird. Ein Verweis auf ein statisches Member sollte durch einen Typnamen qualifiziert werden. |
Warnung |
Indirekter Zugriff auf statisches Member |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn indirekt auf ein statisches Feld oder eine Methode zugegriffen wird. Ein statisches Feld einer Schnittstelle ist mit einem deklarierenden Typnamen zu qualifizieren. |
Ignorieren |
Unqualifizierter Zugriff auf Instanzfeld |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn er einen nicht qualifizierten Zugriff auf ein Feld feststellt (z. B. wenn 'this' fehlt). |
Ignorieren |
Zugriff auf ein nicht zugriffsfähiges Member eines einschließenden Typs |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn er den Zugriff auf ein nicht zugriffsfähiges Member eines einschließenden Typs emuliert. Solche Zugriffe können Auswirkungen auf die Leistung beinhalten. |
Ignorieren |
Parameterzuordnung |
Das Zuordnen eines Werts zu einem Parameter wird allgemein als schlechter Programmierstil angesehen. Wenn diese Option aktiviert ist, signalisiert der Compiler ein solches Szenario entweder als Fehler oder als Warnung. |
Ignorieren |
Nicht ausgelagerte Zeichenfolgen |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung für nicht ausgelagertes Zeichenfolgeliteral aus (d. h. nicht mit dem Tag //$NON-NLS-<n>$ versehen) oder für nicht ausgelagerte Zeichenfolgetags, die keiner Zeichenfolge angehören. |
Ignorieren |
Nicht dokumentierter leerer Block |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn die Anweisung eines leeren Blocks ohne erklärenden Kommentar gefunden wird. |
Ignorieren |
Die Ressource wird nicht mit try-with-resource verwaltet (1.7 oder höher) |
Wenn diese Option aktiviert ist, dann gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine lokale Variable einen Wert vom Typ 'java.lang.AutoCloseable' enthält und wenn die Methode 'close()' explizit für diese Ressource aufgerufen wird, die Ressource jedoch nicht mit einem try-with-resource-Block verwaltet wird. |
Ignorieren |
Methode mit einem Konstruktornamen |
Das Benennen einer Methode mit einem Konstruktornamen wird allgemein als schlechter Programmierstil betrachtet. Wenn diese Option aktiviert ist, signalisiert der Compiler ein solches Szenario entweder als Fehler oder als Warnung. |
Warnung |
Methode darf statisch sein |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung für Methoden aus, die privat oder 'final' sind und nur auf statische Member verweisen. |
Ignorieren |
Methode darf potenziell statisch sein |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung für Methoden aus, die nicht privat oder 'final' sind und nur auf statische Member verweisen. Beachten Sie, dass Methoden in einer Unterklasse überschrieben werden können. Wenn Sie also eine "potenziell statische" Methode als statisch definieren, kann dies vorhandene Clients außer Funktion setzen. |
Ignorieren |
Identische Werte ('x == x') werden verglichen |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn ein Vergleich identische Operanden (zum Beispiel 'x == x') einbezieht. |
Warnung |
Zuordnung ist wirkungslos (z. B. 'x = x') |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine Zuordnung keine Auswirkung hat (z. B. "x = x"). |
Warnung |
Mögliche zufällige boolesche Zuordnung (z. B. 'if (a = b)') |
Wenn diese Option aktiviert ist, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn er eine mögliche zufällige boolesche Zuordnung feststellt (z. B. 'if (a = b)'). |
Ignorieren |
Konvertierungen ('boxing' und 'unboxing') |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn Konvertierungen ('boxing' und 'unboxing') gefunden werden. 'Autoboxing' kann die Leistung nachteilig beeinflussen. |
Ignorieren |
Verwendung eines Zeichenbereichs in Verkettung von Zeichenfolgen |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn in Verkettungen von Zeichenfolgen ein Ausdruck 'char[]' verwendet wird. "hello" + new char[]{'w','o','r','l','d'} |
Warnung |
Ungenaue Typübereinstimmung für Vararg-Argumente |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine ungenaue Typübereinstimmung für Vararg-Argumente gefunden wird. |
Warnung |
Leere Anweisung |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine leere Anweisung gefunden wird (z. B. ein nicht erforderliches Semikolon). |
Ignorieren |
Nicht verwendete Objektzuordnung |
Wenn diese Option aktiviert ist, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn er ein zugeordnetes Objekt feststellt, das nicht verwendet wird. Beispiel: if (name == null) new IllegalArgumentException(); |
Ignorieren |
Unvollständige switch-case-Anweisungen für enum |
Ist diese Option aktiviert, dann gibt der Compiler einen Fehler oder eine Warnung aus, wenn er eine switch-Anweisung feststellt, die nicht für jede Aufzählungskonstante der Aufzählung, auf die verwiesen wird, case-Anweisungen enthält und die über keine case-Standardanweisung verfügt. Eine case-Standardanweisung deckt Fälle ab, in denen eine case-Anweisung für eine Aufzählungskonstante fehlt, sodass der Compiler keine Meldungen ausgibt, wenn case-Standardanweisungen vorhanden sind, es sei denn, die Option "Signal auch wenn case-Standardanweisung vorhanden ist" (siehe unten) wurde aktiviert. |
Warnung |
Signal auch wenn case-Standardanweisung vorhanden ist |
Ist diese Option aktiviert, dann gibt der Compiler zusätzlich einen Fehler oder eine Warnung aus, wenn die Aufzählungskonstante nicht durch eine case-Anweisung abgedeckt ist, auch wenn eine case-Standardanweisung vorhanden ist. Diese Option ist hilfreich zum Abfangen fehlender case-Anweisungen, wenn eine neue Aufzählungskonstante hinzugefügt wird. |
Inaktiviert |
Für 'switch' fehlt die case-Standardanweisung |
Ist diese Option aktiviert, dann gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine switch-Anweisung nicht über eine case-Standardanweisung verfügt. Folglich wird eine Markierung für eine fehlende case-Standardanweisung auch dann durchgeführt, wenn alle möglichen Werte ansonsten durch case-Anweisungen abgedeckt sind. Diese Warnung wird durch die Java-Sprachspezifikation zur Wahrung der Binärkompatibilität empfohlen. |
Ignorieren |
case in switch-Anweisung ausgelassen |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine case-Anweisung durch einen Fallthrough einer vorherigen, nicht leeren case-Anweisung eingegeben werden könnte. |
Ignorieren |
Verdeckter catch-Block |
Bei einer lokalen try-Anweisung können einige catch-Blöcke möglicherweise andere verdecken, z. B.: try { throw new java.io.CharConversionException(); } catch (java.io.CharConversionException e) { } catch (java.io.IOException e) {} Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung für verdeckte catch-Blöcke entsprechend den überprüften Ausnahmebedingungen aus. |
Warnung |
Der 'finally'-Block wird nicht normal beendet. |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine 'finally'-Anweisung nicht normal beendet wird (z. B. eine return-Anweisung enthält). |
Warnung |
Inaktiver Code (z. B. 'if (false)') |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn er inaktiven Code (z. B. 'if (false)') feststellt. |
Warnung |
Ressourcenleck |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine lokale Variable einen Wert des Typs 'java.lang.AutoCloseable' (Kompatibilität >= 1.7) oder einen Wert des Typs 'java.io.Closeable' (Kompatibilität <= 1.6) enthält und wenn die Ablaufanalyse zeigt, dass die Methode close() für diesen Wert nicht lokal aufgerufen wird. |
Warnung |
Mögliches Ressourcenleck |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine lokale Variable einen Wert des Typs 'java.lang.AutoCloseable' (Kompatibilität >= 1.7) oder einen Wert des Typs 'java.io.Closeable' (Kompatibilität <= 1.6) enthält und wenn die Ablaufanalyse zeigt, dass die Methode close() für diesen Wert nicht für alle Ausführungspfade lokal aufgerufen wird. |
Ignorieren |
Serialisierbare Klasse ohne serialVersionUID |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn ein 'java.io.Serializable' implementierender Typ kein 'serialVersionUID'-Feld enthält. |
Warnung |
Fehlender synchronisierter Änderungswert in übernommener Methode |
Wenn diese Option aktiviert ist, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn er eine übernommene Methode feststellt, in der der synchronisierte Änderungswert fehlt. |
Ignorieren |
Klasse überschreibt 'equals()', aber nicht 'hashCode()' |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn er eine Klasse feststellt, die 'equals()', aber nicht 'hashCode()' überschreibt. |
Ignorieren |
Eine Felddeklaration verdeckt ein anderes Feld oder eine Variable. |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine Felddeklaration ein anderes übernommenes Feld verdeckt. |
Ignorieren |
Eine lokale Variablendeklaration verdeckt ein anderes Feld oder eine andere Variable. |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine lokale Variablendeklaration ein anderes Feld oder eine Variable verdeckt. |
Ignorieren |
Parameter für Konstruktor oder Setter-Methode einschließen |
Ist diese Option aktiviert, gibt der Compiler zusätzlich einen Fehler oder eine Warnung aus, wenn ein Konstruktor oder eine Setter-Methode ein anderes Feld oder eine Variable verdecken. |
Inaktiviert |
Ein Typparameter verdeckt einen anderen Typ. |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn z. B. ein Typparameter einer untergeordneten Klasse einen äußeren Typ verdeckt. |
Warnung |
Methode überschreibt keine sichtbare Methode des Pakets |
Eine Standardmethode eines Pakets ist in einem anderen Paket nicht sichtbar und kann deshalb nicht überschrieben werden. Wenn diese Option aktiviert ist, signalisiert der Compiler ein solches Szenario entweder als Fehler oder als Warnung. |
Warnung |
Konflikte zwischen Schnittstellenmethode und geschützter Methode 'Object' |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine Schnittstelle eine Methode definiert, die mit der Methode eines nicht übernommenen Objekts nicht kompatibel ist. Solange dieser Konflikt nicht aufgelöst ist, kann eine solche Schnittstelle nicht implementiert werden, z. B. interface I { int clone(); } |
Warnung |
Veraltete API |
Ist diese Option aktiviert, signalisiert der Compiler die Verwendung von herabgestufter API entweder als Fehler oder als Warnung. |
Warnung |
Verwendung von herabgestufter API in veraltetem Code melden |
Ist diese Option aktiviert, signalisiert der Compiler die Verwendung einer herabgestuften API innerhalb von veraltetem Code. Die Wertigkeit des Fehlers wird mit der Option 'Herabgestufte API' gesteuert. |
Inaktiviert |
Überschreibende oder implementierende veraltete Methode melden |
Ist diese Option aktiviert, meldet der Compiler das Überschreiben oder Implementieren einer veralteten Methode. Die Wertigkeit des Fehlers wird mit der Option 'Herabgestufte API' gesteuert. |
Inaktiviert |
Nicht zulässiger Verweis (Zugriffsregeln) |
Ist diese Option aktiviert, meldet der Compiler einen nicht zulässigen Verweis, der in den Zugriffsregeln angegeben ist. |
Fehler |
Nicht empfohlener Verweis (Zugriffsregeln) |
Ist diese Option aktiviert, meldet der Compiler einen nicht empfohlenen Verweis, der in den Zugriffsregeln angegeben ist. |
Warnung |
Wert der lokalen Variable wird nicht verwendet |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine lokale Variable deklariert ist, ihr Wert jedoch nie innerhalb ihres Geltungsbereichs verwendet wird. |
Warnung |
Wert des Parameters wird nicht verwendet |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn ein Parameter deklariert ist, sein Wert jedoch nie innerhalb seines Geltungsbereichs verwendet wird. |
Ignorieren |
In überschreibenden und implementierenden Methoden ignorieren |
Ist diese Option aktiviert, gibt der Compiler keinen Fehler oder keine Warnung aus, wenn ein Parameter deklariert ist, jedoch in überschreibenden oder implementierenden Methoden nie innerhalb seines Geltungsbereichs verwendet wird. |
Aktiviert |
Parameter ignorieren, die mit dem Tag '@param' dokumentiert sind |
Wenn diese Option aktiviert ist, gibt der Compiler keinen Fehler und keine Warnung aus, wenn ein ungelesener Parameter mit einem Tag '@param' dokumentiert wird. |
Aktiviert |
Nicht verwendeter Import |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung für nicht verwendete Importverweise aus. |
Warnung |
Nicht verwendetes privates Member |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn ein privates Member deklariert ist, in derselben Einheit jedoch nie verwendet wird. |
Warnung |
Nicht erforderliche Anweisung 'else' |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine nicht erforderliche 'else'-Anweisung gefunden wird (z. B. if (Bedingung) return; else doSomething();). |
Ignorieren |
Nicht erforderliche Umsetzung von Operation 'instanceof' |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine nicht erforderliche cast- oder 'instanceof'-Operation gefunden wird (z. B. if (object instanceof Object) return;). |
Ignorieren |
Nicht erforderliche Deklaration von ausgelöster Ausnahmebedingung |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine nicht erforderliche Deklaration einer ausgelösten Ausnahmebedingung gefunden wird. |
Ignorieren |
In überschreibenden und implementierenden Methoden ignorieren |
Ist diese Option aktiviert, gibt der Compiler keinen Fehler oder keine Warnung aus, wenn eine nicht erforderliche Deklaration einer Ausnahmebedingung in einer Methode gefunden wird, die einer andere Methode überschreibt oder implementiert. |
Aktiviert |
Ausnahmen ignorieren, die mit den Tags '@throws' oder '@exception' dokumentiert sind. |
Ist diese Option aktiviert, gibt der Compiler keinen Fehler oder keine Warnung aus, wenn eine nicht erforderliche Deklaration einer ausgelösten Ausnahmebedingung mit einem Tag '@throws' oder '@exception' dokumentiert wird. |
Aktiviert |
'Exception' und 'Throwable' ignorieren |
Ist diese Option aktiviert, gibt der Compiler keinen Fehler oder keine Warnung aus, wenn eine nicht erforderliche Deklaration einer Ausnahmebedingung oder eines Throwables gefunden wird. |
Aktiviert |
Nicht verwendete Bezeichnung 'break' oder 'continue' |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine nicht verwendete Bezeichnung 'break' (Unterbrechung) oder 'continue' (Fortsetzung) festgestellt wird. |
Warnung |
Redundante Superschnittstelle |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn er einen Typ feststellt, der explizit eine Schnittstelle implementiert, die bereits durch einen seiner Supertypen implementiert worden ist. |
Ignorieren |
Nicht überprüfte generische Typoperation |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine nicht überprüfte generische Typoperation gefunden wird. |
Warnung |
Verwendung eines unformatierten Typs |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn er eine Verwendung eines unformatierten Typs (z. B. 'List' anstatt 'List<String>') feststellt. |
Warnung |
Generischer, mit finaler Typenbindung deklarierter Typparameter |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn ein generischer, mit finaler Typenbindung deklarierter Typparameter gefunden wird. |
Warnung |
Unvermeidbare generische Typprobleme ignorieren |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn er ein generisches Typproblem erkennt, das vom Programmierer nicht hätte vermieden werden können. Zum Beispiel könnte ein Typ zwangsweise unformatierte Typen in seinen Methodensignaturen und Rückgabetypen verwenden müssen, weil die Methoden, die er von einem Supertyp überschreibt, mit unformatierten Typen an erster Stelle deklariert sind. Wenn die unformatierten APIs, auf die verwiesen wird, als generisch definiert werden, besteht kein Problem mehr (wenn die generischen Typen korrekt sind) oder es treten Kompilierungsfehler auf (wenn die API auf andere Weise als generisch definiert wurde). |
Inaktiviert |
Anmerkung des Typs '@Override' fehlt |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn er eine Methode feststellt, die eine andere implementierte Methode überschreibt, und die Anmerkung des Typs '@Override' fehlt. |
Ignorieren |
Implementierungen von Schnittstellenmethoden einschließen (1.6 oder höher) |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung auch dann aus, wenn er eine Methode feststellt, die eine andere
in einer Schnittstelle deklarierte Methode überschreibt oder implementiert, und die Anmerkung des Typs '@Override' fehlt. |
Aktiviert |
Anmerkung des Typs '@Deprecated' fehlt |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn er einen veralteten Typ ohne die zusätzliche Anmerkung des Typs '@Deprecated' feststellt. |
Ignorieren |
Anmerkung wird als Superschnittstelle verwendet |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn er einen Typ feststellt, der eine Anmerkung implementiert. Obwohl möglich, wird dies als schlechte Praktik betrachtet. |
Warnung |
Nicht verarbeitetes Token in '@SuppressWarnings' |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn ein unbekanntes Token in einer Anmerkung des Typs '@SuppressWarnings' gefunden wird. |
Warnung |
Anmerkungen des Typs '@SuppressWarnings' aktivieren |
Ist diese Option aktiviert, verarbeitet der Compiler Anmerkungen des Typs '@SuppressWarnings'. Wenn diese Option inaktiviert ist, reagiert das System so, als ob alle Anmerkungen vom Typ '@SuppressWarnings' entfernt worden wären. |
Aktiviert |
Nicht verwendetes Token '@SuppressWarnings' |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn ein nicht verwendetes Token in einer Anmerkung des Typs '@SuppressWarnings' gefunden wird. |
Warnung |
Optionale Fehler mit '@SuppressWarnings' unterdrücken |
Ist diese Option aktiviert, unterdrückt die Anmerkung '@SuppressWarnings' auch die optionalen Kompilierungsfehler, z. B. Optionen, die hier auf "Error" gesetzt wurden. Obligatorische Kompilierungsfehler können nicht unterdrückt werden. |
Inaktiviert |
Nullzeigerzugriff |
Wenn diese Option aktiviert ist, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn festgestellt wird, dass eine lokale Variable, die mit Bestimmtheit den Wert Null hat, dereferenziert wird. Beachten Sie, dass die Analyse nicht alle Nullzeigerzugriffe findet (siehe Möglicher Nullzeigerzugriff). |
Warnung |
Möglicher Nullzeigerzugriff |
Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn festgestellt wird, dass eine lokale Variable, die den Wert Null haben kann dereferenziert wird. Dabei ist zu beachten, dass die Analyse eher konservativ ist, d. h. sie berücksichtigt nur Fälle, die einen begründeten Verdacht zulassen. Die Qualität der Analyse kann verbessert werden, indem Nullanmerkungen verwendet werden, die mithilfe der Option Anmerkungsbasierte Nullanalyse aktivieren aktiviert werden können. |
Ignorieren |
Prüfung auf redundante Null |
Wenn diese Option aktiviert ist, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine lokale Variable, die nicht Null sein kann, auf einen Nullwert geprüft wird. |
Ignorieren |
'assert' in Nullanalyse einschließen |
Ist diese Option aktiviert, berücksichtigt der Compiler die Anweisung 'assert' bei der Ausführung einer Nullanalyse. |
Inaktiviert |
Anmerkungsbasierte Nullanalyse aktivieren |
Ist diese Option aktiviert, interpretiert der Compiler die Anmerkungen vom Typ @Nullable, @NonNull und @NonNullByDefault so, dass diese angeben, ob ein bestimmter Typ den Wert 'null' enthält. Die Auswirkungen dieser Analysen werden weitergehend durch die folgenden Unteroptionen gesteuert. Siehe auch Nullanmerkungen verwenden. |
Inaktiviert |
Verstoß gegen Nullspezifikation |
Abhängig von dieser Option gibt der Compiler entweder einen Fehler oder eine Warnung aus, wenn eine der folgenden Situationen festgestellt wird:
Im obigen Fall wird ein Ausdruck als nullfähig betrachtet, wenn entweder statisch anerkannt ist, dass er mit dem Wert |
Fehler |
Konflikt zwischen Nullanmerkungen und Nullinferenz |
Abhängig von dieser Option gibt der Compiler entweder einen Fehler oder eine Warnung aus, wenn eine der folgenden Situationen festgestellt wird:
|
Fehler |
Ungeprüfte Konvertierung von Typ ohne Anmerkung in den Typ @NonNull |
Abhängig von dieser Option gibt der Compiler entweder einen Fehler oder eine Warnung aus, wenn eine der folgenden Situationen festgestellt wird:
Eine ungeprüfte Konvertierung ist normalerweise die Folge der Verwendung anderer Variablen oder Methoden ohne Anmerkung. |
Warnung |
Redundante Nullanmerkung |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine Nicht-Nullanmerkung angewendet wird, auch wenn der gleiche Effekt bereits von einem Standardwert erreicht wurde, der an der aktuellen Position angewendet werden kann. Ein solcher Standardwert kann durch das Aktivieren der Option Nicht-Null als arbeitsbereichsweiten (oder projektweiten) Standardwert verwenden oder durch Verwendung der Anmerkung @NonNullByDefault definiert werden. |
Warnung |
Fehlende Anmerkung '@NonNullByDefault' im Paket |
Ist diese Option aktiviert, gibt der Compiler in folgenden Fällen einen Fehler oder eine Warnung aus:
|
Ignorieren |
Standardanmerkungen für Nullspezifikationen verwenden |
Ist diese Option aktiviert, verwendet der Compiler die Standardgruppe von Anmerkungen für Nullspezifikationen. Diese Anmerkungen werden im Eclipse-SDK in das Paket org.eclipse.jdt.annotation aufgenommen. Sie können unterschiedliche Anmerkungsnamen angeben, die in Ihren Projekten verwendet werden sollen, müssen dabei aber beachten, dass der Eclipse-Compiler nur die Semantik unterstützt, die in den Standardanmerkungen angegeben ist:
|
Aktiviert |
Wenn die Option Obige Fehler als schwerwiegende Kompilierungsfehler behandeln aktiviert ist, führen alle generierten Fehler (schwerwiegende und konfigurierbare) dazu, dass der Code nicht ausgeführt werden kann. Wenn diese Option inaktiviert ist, kann der Code ausgeführt werden, sofern er keinen schwerwiegenden Fehler aufweist (z. B. Syntaxfehler, Typfehler oder Fehler gemäß der Java-Sprachspezifikation).