Označte své předvolby nastavení Chyb/varování na stránce předvoleb Java > Kompilátor > Chyby/varování.
Volba |
Popis |
Výchozí |
---|---|---|
Nestatický přístup ke statickému členu |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybové hlášení nebo varování vždy při přístupu do statického pole nebo metody s použitím přijímače výrazu. Odkaz na statický člen by měl být kvalifikován názvem typu. |
Varování |
Nepřímý přístup ke statickému členu |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybové hlášení nebo varování vždy při nepřímém přístupu do statického pole nebo metody. Statické pole rozhraní by mělo být provedeno s použitím názvu deklarujícího typu. |
Ignorovat |
Nekvalifikovaný přístup k poli instance |
Povolíte-li tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu přístupu k poli, které není kvalifikováno (např. chybí 'this'). |
Ignorovat |
Přístup k nepřístupnému členu zapouzdřujícího typu |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybové hlášení nebo varování vždy při emulaci přístupu k nepřístupnému členu zapouzdřujícího typu. Takovéto přístupy mohou mít dopad na výkon. |
Ignorovat |
Přiřazení parametrů |
Přiřazení hodnoty parametru je obecně považováno za chybný styl programování. Je-li tato volba povolena, bude kompilátor při rozpoznání tohoto scénáře vytvářet chybové hlášení nebo varování. |
Ignorovat |
Neexternalizované řetězce |
Je-li tato volba povolena, kompilátor bude generovat chybu nebo varování pro neexternalizovaný řetězcový literál (tj. řetězec neoznačený značkou //$NON-NLS-<n>$) nebo pro neexternalizované řetězcové značky, které nepatří do řetězce. |
Ignorovat |
Nedokumentovaný prázdný blok |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu příkazu prázdného bloku bez vysvětlující poznámky. |
Ignorovat |
Prostředek není spravován prostřednictvím bloku try-with-resource (1.7 nebo vyšší) |
Pokud povolíte tuto volbu, generuje kompilátor chybu nebo varování, pokud lokální proměnná obsahuje hodnotu typu 'java.lang.AutoCloseable' a pokud je na daném prostředku explicitně vyvolána metoda 'close()', ale prostředek není spravován blokem try-with-resources. |
Ignorovat |
Metoda s názvem konstruktoru |
Pojmenování metody názvem konstruktoru je obecně považováno za chybný styl programování. Je-li tato volba povolena, bude kompilátor při rozpoznání tohoto scénáře vytvářet chybové hlášení nebo varování. |
Varování |
Metoda může být statická |
Je-li tato volba povolena, kompilátor bude vytvářet chybová hlášení či varování pro metody, které jsou soukromé nebo konečné, a které odkazují pouze na statické členy. |
Ignorovat |
Metoda může být případně statická |
Je-li tato volba povolena, kompilátor bude vytvářet chybová hlášení či varování pro metody, které nejsou soukromé nebo konečné a které odkazují pouze na statické členy. Mějte na zřeteli, že metody mohou být potlačeny v podtřídě, takže pokud učiníte z "případně statické" metody statickou, může to přerušit existující klienty. |
Ignorovat |
Porovnání identických hodnot ('x == x') |
Pokud tuto volbu povolíte, kompilátor bude vysílat chybu či varování v případě, že porovnání zahrnuje identické operandy (např. 'x == x'). |
Varování |
Přiřazení bez účinku (např. 'x = x') |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu přiřazení bez účinku (např. 'x = x'). |
Varování |
Možné nechtěné logické přiřazení (např. 'if (a = b)') |
Je-li tato volba povolena, kompilátor bude vytvářet chybová hlášení nebo výstrahy vždy při rozpoznání možného nechtěného přiřazení (např. 'if (a = b)'). |
Ignorovat |
Převod uzavírání a otevírání |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu převodu uzavírání a otevírání. Automatické uzavírání může mít negativní dopad na výkon. |
Ignorovat |
Použití pole char ve zřetězení řetězce |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybové hlášení nebo varování vždy při použití výrazu char[] ve spojování řetězců ,např. "hello" + new char[]{'w','o','r','l','d'} |
Varování |
Nepřesná shoda typu pro argumenty vararg |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu nepřesné shody typu pro argumenty vararg. |
Varování |
Prázdný příkaz |
Povolíte-li tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu prázdného příkazu (např. nadbytečného středníku). |
Ignorovat |
Nepoužité alokace objektu |
Je-li povolena tato volba, kompilátor bude generovat chybu nebo varování při rozpoznání přiděleného objektu, který není použit, např. if (name == null) new IllegalArgumentException(); |
Ignorovat |
Neúplné případy 'switch' ve výčtu |
Pokud povolíte tuto volbu, generuje kompilátor chybu nebo varování, kdykoli zjistí příkaz switch, který neobsahuje příkazy case pro všechny výčtové konstanty odkazovaného výčtu, ani výchozí větev case. Předpokládá se, že výchozí větev case pokrývá chybějící příkazy case pro všechny výčtové konstanty, takže se kompilátor v přítomnosti výchozí větve case neozývá, pokud není povolena volba "Signalizovat, i když existuje případ 'default'" (viz níže). |
Varování |
Signalizovat, i když existuje případ 'default' |
Je-li tato volba povolena, bude kompilátor generovat chybu nebo varování v případě, že není výčtová konstanta pokryta větví case, i když existuje výchozí větev case. Tato volba je užitečná pro zachycení chybějících větví case po přidání nové výčtové konstanty. |
Vypnout |
V příkazu 'switch' chybí větev case 'default' |
Je-li povolena tato volba, generuje kompilátor chybu nebo varování, když v příkaze 'switch' chybí výchozí větev case. V důsledku toho bude nahlášena chybějící výchozí větev case 'default', i když bude větvení 'case' pokrývat všechny možné hodnoty. Toto varování doporučuje specifikace jazyka Java za účelem binární kompatibility. |
Ignorovat |
Neúspěch příkazu 'switch' |
Je-li tato volba povolena, kompilátor bude generovat chybu nebo varování při vstupu do případu průchodem předchozího neprázdného případu. |
Ignorovat |
Skrytý zachytávací blok |
V rámci příkazu try mohou být některé bloky příkazu catch skrývány jinými bloky catch, např. try { throw new java.io.CharConversionException(); } catch (java.io.CharConversionException e) { } catch (java.io.IOException e) {} Je-li tato volba povolena, kompilátor bude vytvářet chybová hlášení či varování pro skryté bloky příkazu catch podle potvrzených výjimek. |
Varování |
Část 'finally' není ukončena obvyklým způsobem |
Povolíte-li tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při neobvyklém ukončení příkazu 'finally' (např. obsahuje příkaz return). |
Varování |
Nedostupný kód (např. 'if (false)') |
Povolíte-li tuto volbu, kompilátor bude generovat chybu či varování vždy při rozpoznání nedostupného kódu (např. 'if (false)' ). |
Varování |
Únik prostředků |
Je-li povolena tato volba, generuje kompilátor chybu nebo varování, pokud má lokální proměnná hodnotu typu 'java.lang.AutoCloseable' (kompatibilita >= 1,7) nebo hodnotu typu 'java.io.Closeable' (kompatibilita <= 1,6) a pokud analýza toku ukazuje, že na této hodnotě není lokálně vyvolána metoda 'close()'. |
Varování |
Potenciální únik prostředků |
Je-li povolena tato volba, generuje kompilátor chybu nebo varování, pokud má lokální proměnná hodnotu typu 'java.lang.AutoCloseable' (kompatibilita >= 1,7) nebo hodnotu typu 'java.io.Closeable' (kompatibilita <= 1,6) a pokud analýza toku ukazuje, že na této hodnotě není lokálně vyvolána metoda 'close()' pro všechny cesty provedení. |
Ignorovat |
Serializovatelná třída postrádá serialVersionUID |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy, když typ implementující 'java.io.Serializable' neobsahuje pole serialVersionUID. |
Varování |
Chybí synchronizovaný modifikátor ve zděděné metodě |
Při povolení bude kompilátor generovat chybu nebo varování, když rozpozná zděděnou metodu, které chybí synchronizovaný modifikátor. |
Ignorovat |
Třída potlačuje 'equals()', ale ne 'hashCode()' |
Je-li povolena tato volba, kompilátor bude generovat chybu nebo varování vždy při rozpoznání třídy, která potlačuje 'equals()', nikoli 'hashCode()'. |
Ignorovat |
Deklarace pole skrývá jiné pole nebo proměnnou |
Je-li tato volba povolena, kompilátor bude vytvářet chybová hlášení či varování, pokud deklarace pole skrývá jiné zděděné pole. |
Ignorovat |
Deklarace lokální proměnné skrývá jiné pole nebo proměnnou |
Je-li tato volba povolena, kompilátor bude vytvářet chybové hlášení či varování, pokud deklarace lokální proměnné skrývá jiné pole nebo proměnnou. |
Ignorovat |
Zahrnout konstruktor nebo parametry metody Setter |
Je-li tato volba povolena, kompilátor bude vytvářet chybová hlášení nebo varování, pokud konstruktor nebo parametr metody setter skrývá jiné pole nebo proměnnou. |
Vypnout |
Parametr typu skrývá jiný typ |
Je-li tato volba povolena, kompilátor bude vytvářet chybová hlášení nebo varování například v situaci, kdy parametr typu vnitřní třídy skrývá vnější typ. |
Varování |
Metoda nepotlačí viditelnou metodu balíku |
Výchozí metoda balíku se nezobrazuje v jiném balíku, a proto ji nelze potlačit. Je-li tato volba povolena, bude kompilátor při rozpoznání tohoto scénáře vytvářet chybové hlášení nebo varování. |
Varování |
Metoda rozhraní koliduje s chráněnou metodou 'Object' |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybové hlášení nebo varování vždy, když bude rozhraní definovat metodu nekompatibilní s metodou nezděděného objektu. Dokud tento konflikt nebude vyřešen, nelze implementovat takovéto rozhraní, například interface I { int clone(); } |
Varování |
Zamítnuté rozhraní API |
Pokud povolíte tuto volbu, kompilátor při použití zamítnutého rozhraní API vytvoří chybové hlášení nebo varování. |
Varování |
Použití signálu zamítnutého rozhraní API uvnitř zamítnutého kódu |
Pokud povolíte tuto volbu, kompilátor bude signalizovat použití zamítnutého rozhraní API uvnitř zamítnutého kódu. Závažnost problému se řídí volbou "Zamítnuté rozhraní API". |
Vypnout |
Signál potlačující nebo implementující zamítnutou metodu |
Pokud povolíte tuto volbu, kompilátor bude signalizovat potlačení nebo implementaci zamítnuté metody Závažnost problému se řídí volbou "Zamítnuté rozhraní API". |
Vypnout |
Zakázaný odkaz (přístupová pravidla) |
Pokud povolíte tuto možnost, kompilátor bude signalizovat zakázaný odkaz uvedený v přístupových pravidlech. |
Chyba |
Nevhodný odkaz (přístupová pravidla) |
Pokud povolíte tuto možnost, kompilátor bude signalizovat nevhodný odkaz uvedený v přístupových pravidlech. |
Varování |
Hodnota lokální proměnné se nepoužívá |
Je-li povolena tato volba, kompilátor bude generovat chybu nebo varování při deklaraci lokální proměnné, jejíž hodnota není nikde v jejím rozsahu použita. |
Varování |
Hodnota parametru se nepoužívá |
Je-li tato volba povolena, kompilátor bude generovat chybu nebo varování při deklaraci parametru, jehož hodnota není nikde v jeho rozsahu použita. |
Ignorovat |
Ignorovat v metodách zajišťujících potlačení a implementaci |
Je-li tato volba povolena, kompilátor nebude generovat chybu nebo výstrahu při deklaraci parametru, který není použit ve svém rozsahu v metodě potlačující nebo implementující jinou metodu. |
Zapnout |
Ignorovat parametry dokumentované značkou '@param' |
Je-li povolena tato volba, kompilátor nebude vytvářet chybové zprávy ani výstrahy pro nepoužité parametry dokumentované značkou '@param'. |
Zapnout |
Nepoužívaný import |
Pokud povolíte tuto volbu, kompilátor bude pro nepoužitý odkaz importu vytvářet chybové hlášení nebo varování. |
Varování |
Nepoužívaný soukromý člen |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybové zprávy nebo varování vždy při deklaraci soukromého členu, který není v dané jednotce použit. |
Varování |
Nadbytečný příkaz 'else' |
Povolíte-li tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu zbytečného příkazu else (např. if (condition) return; else doSomething();). |
Ignorovat |
Zbytečné přetypování nebo operace 'instanceof' |
Povolíte-li tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu zbytečného přetypování nebo operace 'instanceof' (např. if (object instanceof Object) return;). |
Ignorovat |
Nadbytečná deklarace vyvolané výjimky |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu nadbytečné deklarace vyhozené kontrolované výjimky. |
Ignorovat |
Ignorovat v metodách zajišťujících potlačení a implementaci |
Je-li tato volba povolena, kompilátor nebude navíc vytvářet chybová hlášení nebo varování při výskytu nadbytečné deklarace vyvolané výjimky v metodě, která potlačuje nebo implementuje jinou metodu. |
Zapnout |
Ignorovat výjimky dokumentované pomocí značek '@throws' nebo '@exception' |
Je-li povolena tato volba, kompilátor nebude vytvářet chybové zprávy a varování, pokud je nadbytečná deklarace vyvolané výjimky dokumentována značkou '@throws' či '@exception'. |
Zapnout |
Ignorovat 'Exception' a 'Throwable' |
Povolíte-li tuto volbu, kompilátor nebude vytvářet chybové hlášení ani varování v situaci, kdy narazí na nadbytečnou deklaraci výjimky 'Exception' nebo 'Throwable' |
Zapnout |
Nepoužitý štítek 'break' nebo 'continue' |
Je-li povolena tato volba, kompilátor bude generovat chybu nebo varování vždy při rozpoznání nepoužitého štítku 'break' nebo 'continue'. |
Varování |
Nadbytečné superrozhraní |
Je-li tato volba povolena, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu typu, který výslovně implementuje rozhraní, které již bylo implementováno nějakým z jeho supertypů. |
Ignorovat |
Nekontrolovaná operace s generickým typem |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu nekontrolované operace s generickým typem. |
Varování |
Použití typu raw |
Je-li povolena tato volba, kompilátor bude generovat chybu nebo varování vždy při rozpoznání použití typu raw (např. Seznam místo Seznam<Řetězec>). |
Varování |
Je deklarován generický typový parametr s konečnou typovou vazbou |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu typové vazby zahrnující konečný typ. |
Varování |
Ignorovat nevyhnutelné problémy generického typu |
Pokud povolíte tuto volbu, kompilátor vytvoří chybové hlášení nebo varování i v případě, že detekuje problém generického typu, kterému se programátor nemohl vyhnout. Například u typu může být vynuceno použití základních typů v podpisech metody a návratových typech, protože u metod, které potlačuje ze supertypu, je v první řadě deklarováno použití základních typů. Po generifikaci odkazovaných přímých rozhraní API se nezobrazí buď vůbec žádný problém (pokud byly generické typy správné), nebo se zobrazí chyby kompilace (pokud se rozhraní API generifikovalo jinak). |
Vypnout |
Chybí anotace '@Override' |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu metody potlačující jinou implementovanou metodu a pokud chybí anotace '@Override'. |
Ignorovat |
Začlenit implementace metod rozhraní (1.6 nebo vyšší) |
Pokud povolíte tuto volbu, kompilátor bude rovněž vytvářet chybová hlášení či varování vždy při výskytu metody potlačující nebo implementující metodu deklarovanou v rozhraní a pokud chybí anotace '@Override'. |
Zapnout |
Chybí anotace '@Deprecated' |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu zamítnutého typu bez dodatečné anotace '@Deprecated'. |
Ignorovat |
Anotace se používá jako superrozhraní |
Pokud povolíte tuto volbu, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu typu implementujícího anotaci. Ačkoli je to možné, je to považováno za chybný postup. |
Varování |
Neošetřený token v '@SuppressWarnings' |
Je-li povolena tato volba, generuje kompilátor chybu nebo varování, kdykoli zjistí v anotaci '@SuppressWarnings' neznámý token. |
Varování |
Povolit anotace '@SuppressWarnings' |
Pokud povolíte tuto volbu, kompilátor bude zpracovávat anotace '@SuppressWarnings'. Je-li tato volba zakázána, bude to, jako by byly odebrány všechny anotace '@SuppressWarnings'. |
Zapnout |
Nepoužívaný token '@SuppressWarnings' |
Je-li tato volba povolena, kompilátor bude vytvářet chybová hlášení či varování vždy při výskytu nepoužitého tokenu v anotaci '@SuppressWarnings'. |
Varování |
Potlačit volitelné chyby s '@SuppressWarnings' |
Je-li povolena tato volba, bude anotace '@SuppressWarnings' potlačovat také volitelné chyby kompilace, tj. volby zde nastavené jako "Chyba". Povinné chyby kompilace potlačit nelze. |
Vypnout |
Přístup k ukazateli Null |
Je-li povolena tato volba, kompilátor bude generovat chybové hlášení nebo varování při rozpoznání nepřímého odkazu na lokální proměnnou, jejíž hodnota je mimo pochybnost nulová. Mějte na zřeteli, že analýza není schopna vyhledat všechny přístupy s ukazateli Null, viz Potenciální přístup k ukazateli Null. |
Varování |
Potenciální přístup k ukazateli Null |
Je-li povolena tato volba, kompilátor bude generovat chybu nebo varování při rozpoznání nepřímého odkazu na proměnnou, která může být nulová. Povšimněte si, že analýza je velmi konzervativní - posuzuje pouze případy s podezřelými prvky. Kvalitu analýzy lze zvýšit použitím anotací Null, které lze povolit pomocí volby Povolit analýzu hodnot Null na základě anotací. |
Ignorovat |
Redundantní kontrola Null |
Je-li tato volba povolena, kompilátor bude vytvářet chybové zprávy nebo varování vždy při testování nuly pro lokální proměnnou, která nemůže být nulová. |
Ignorovat |
Začlenit 'assert' do analýzy null |
Je-li povolena tato volba, bude se kompilátor při analýze řídit příkazy 'assert'. |
Vypnout |
Povolit analýzu hodnot Null na základě anotací |
Je-li povolena tato volba, bude kompilátor interpretovat anotace @Nullable, @NonNull a @NonNullByDefault jako anotace určující, zda daný typ obsahuje, či neobsahuje hodnotu 'null'. Účinek těchto analýz se dále řídí následujícímu dílčími volbami. Viz také Použití anotací hodnot null. |
Vypnout |
Porušení specifikace hodnoty Null |
V závislosti na této volbě bude kompilátor generovat buď chybu, nebo varování, kdykoli bude zjištěna jedna z těchto situací:
Výraz ve výše uvedeném případě je považován za výraz s povolenou hodnotou Null, pokud je statisticky zjištěno, že
se vyhodnocuje na hodnotu |
Chyba |
Konflikt mezi anotacemi hodnoty Null a odvozením hodnoty Null |
V závislosti na této volbě bude kompilátor generovat buď chybu, nebo varování, kdykoli bude zjištěna jedna z těchto situací:
|
Chyba |
Nekontrolovaný převod z neanotovaného typu na typ @NonNull |
V závislosti na této volbě bude kompilátor generovat buď chybu, nebo varování, kdykoli bude zjištěna jedna z těchto situací:
Nekontrolovaný převod je obvykle důsledkem použití jiných neanotovaných proměnných či metod. |
Varování |
Redundantní anotace Null |
Je-li povolena tato volba, bude kompilátor generovat chybu nebo varování, když je použita anotace typu Non-null, ačkoli je stejného účinku již dosaženo výchozím nastavením platným pro aktuální umístění. Takové výchozí nastavení může být nastaveno povolením volby Použít Non-null jako výchozí hodnotu pro celý pracovní prostor (nebo projekt) nebo použitím anotace @NonNullByDefault. |
Varování |
V balíku chybí anotace '@NonNullByDefault' |
Je-li tato volba povolena, kompilátor ohlásí chybu nebo varování v následujících případech:
|
Ignorovat |
Použít výchozí anotace pro specifikace Null |
Je-li povolena tato volba, použije kompilátor výchozí sadu anotací pro specifikace Null. Tyto anotace jsou součástí Eclipse SDK v balíku org.eclipse.jdt.annotation. Pro anotace, které se budou používat ve vašich projektech, je možné určit různé názvy, ale pozor, kompilátor Eclipse podporuje pouze sémantiku určenou ve výchozích anotacích:
|
Zapnout |
Je-li povolena volba Považovat výše uvedené chyby za závažné chyby kompilace, bude kód obsahující libovolnou generovanou chybu, tj. závažnou i konfigurovatelnou, vyhodnocen jako nespustitelný. Je-li tato volba zakázána, bude váš kód vyhodnocen jako proveditelný, pokud nebude obsahovat žádné závažné chyby (chyby syntaxe, chyby typu nebo jakékoli chyby podle specifikace jazyka Java).