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, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn er eine Anweisung 'switch' vorfindet, die weder eine case-Standardanweisung noch case-Anweisungen für jede Aufzählungskonstante der referenzierte Aufzählung (enum) enthält. Die Ausgabe dieser Warnung wird in der Java-Sprachspezifikation 14.11 empfohlen. Hierdurch soll sichergestellt werden, dass switch-Anweisungen alle möglichen Enum-Werte abdecken. |
Warnung |
|
Signal auch wenn case-Standardanweisung vorhanden ist |
Ist diese Option aktiviert, gibt der Compiler zusätzlich einen Fehler oder eine Warnung aus, wenn eine Aufzählungskonstante (enum) durch eine case-Anweisung nicht abgedeckt ist, auch wenn eine case-Standardanweisung vorhanden ist. Diese Option soll fehlende case-Anweisungen ermitteln, wenn eine neue Aufzählungskonstante hinzugefügt wird. |
Inaktiviert |
|
Für 'switch' fehlt die case-Standardanweisung |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine switch-Anweisung keine case-Standardanweisung aufweist. Folglich wird eine Markierung für eine fehlende case-Standardanweisung auch dann gesetzt, wenn alle möglichen Werte ansonsten durch case-Anweisungen abgedeckt sind. Mit dieser Option soll sichergestellt werden, dass neue switch-Ausdruckswerte explizit verarbeitet und nicht übersprungen werden. Diese Option kann auch bei der Erklärung von Kompilierungsfehlern für nicht initialisierte Variablen nach einer switch-Anweisung helfen: Die Gruppe zulässiger Werte kann in der Zukunft zunehmen, sodass die Variablen auch in der case-Standardanweisung initialisiert werden müssen. |
Ignorieren |
|
case in switch-Anweisung ausgelassen |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine case-Anweisung durch Auslassung (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 verwendete Typparameter |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung für nicht verwendete Typparameter aus. |
Ignorieren |
|
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 Umsetzungs- oder 'instanceof'-Operation festgestellt 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 durch unformatierte APIs ignorieren |
Ist diese Option aktiviert, ignoriert der Compiler mit Generics zusammenhängende Typprobleme, die vom Programmierer nicht hätten vermieden werden können, weil eine referenzierte API bereits unformatierte Typen enthält. 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 alte API schließlich generifiziert wird, verschwinden die meisten dieser Probleme oder es wird ein Compilerfehler angezeigt, weil die verwendeten Typargumente nicht richtig sind. Bei unformatierten Verweisen in Methodensignaturen tritt das Problem bezüglich unformatierter Typen erneut auf. |
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' festgestellt 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 oder nicht. Die Auswirkungen dieser Analysen werden weitergehend durch die folgenden Unteroptionen gesteuert. Siehe auch Nullanmerkungen verwenden. |
Inaktiviert |
|
Verstoß gegen Nullspezifikation |
In Abhängigkeit von dieser Option gibt der Compiler entweder einen Fehler oder eine Warnung aus, wenn eine der folgenden Situationen festgestellt wird:
Im vorstehenden Fall wird ein Ausdruck als nullfähig betrachtet, wenn entweder statisch nachgewiesen ist, dass er mit dem Wert |
Fehler |
|
Konflikt zwischen Nullanmerkungen und Nullinferenz |
In Abhängigkeit 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 einem Typ ohne Anmerkung in den Typ '@NonNull' |
In Abhängigkeit 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, obwohl derselbe Effekt bereits von einem Standardwert erreicht wird, der an der aktuellen Position anwendbar ist. Ein solcher Standardwert kann mithilfe der Anmerkung '@NonNullByDefault' festgelegt werden. |
Warnung |
|
Parameter '@NonNull' in überschreibender Methode nicht mit Anmerkungen versehen |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung für einen Parameter einer Methode aus, die eine übernommene Methode überschreibt, wenn alle folgenden Bedingungen erfüllt sind:
|
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 Produktpaket org.eclipse.jdt.annotation eingeschlossen. Sie können unterschiedliche Anmerkungsnamen angeben, die in Ihren Projekten verwendet werden sollen, müssen dabei jedoch beachten, dass der Eclipse-Compiler nur die Semantik unterstützt, die in den Standardanmerkungen angegeben ist:
|
Aktiviert |
|
Nullanmerkungen übernehmen |
Bei Aktivierung sucht der Compiler nach allen Methoden ohne explizite Nullanmerkungen: Wenn er eine Methode, die Nullanmerkungen aufweist, überschreibt, behandelt er die aktuelle Methode so, als hätte sie dieselben Anmerkungen wie die überschriebene Methode. Bei der Übernahme von Anmerkungen wird die effektive Nullness der überschriebenen Methode verwendet, nachdem an der Position der überschriebenen Methode die Übernahme transitiv angewandt wurde und nachdem jede standardmäßige Nullness angewandt wurde. Wenn unterschiedliche implizite Nullanmerkungen (von einer standardmäßigen und/oder überschriebenen Methode mit 'nonnull') für denselben Typ in einer Methodensignatur gelten, wird dies als Fehler markiert, und es muss eine explizite Nullanmerkung verwendet werden, um eine Mehrdeutigkeit zu beheben. |
Inaktiviert |
|
Syntaktische Nullanalyse für Felder aktivieren |
Bei Aktivierung dieser Option erkennt der Compiler bestimmte syntaktische Konstellationen, bei denen normalerweise eine nullbezogene Warnung für einen Feldverweis ausgelöst würde, die jedoch bei geringem Risiko unterdrückt werden kann, unter der Voraussetzung, dass derselbe Feldverweis unmittelbar zuvor als ungleich null (nonnull) bekannt war. Wenn Sie diese Option verwenden, lesen Sie bitte folgende Hinweise. |
Inaktiviert |
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).
