Předvolby chyb/varování kompilací v jazyce Java

Označte své předvolby nastavení Chyb/varování na stránce předvoleb Otevřít stránku předvoleb Chyby/varování Java > Kompilátor > Chyby/varování.

Styl kódu

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

Potenciální problémy programování

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

Stínování a konflikty názvů

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á a omezená rozhraní API

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í

Nadbytečný kód

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

Generické typy

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

Anotace

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'.
Všimněte si, že anotace '@Override' je povolená pouze u těch metod, kde úroveň kompilace kompilátoru je 1.6 nebo vyšší. Tato chyba nebo varování se nikdy nezobrazí v kódu pro 1.5.

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

Analýza hodnot Null

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í:

  1. Metoda deklarovaná s anotací typu Nonnull vrací výraz s povolenou hodnotou Null.
  2. Výraz s povolenou hodnotou Null je předán jako argument ve volání metody, kde je odpovídající parametr volané metody deklarován s anotací typu Nonnull.
  3. Výraz s povolenou hodnotou Null je přiřazen k lokální proměnné, která je deklarována s anotací typu Nonnull.
  4. Metoda, která potlačuje zděděnou metodu deklarovanou s anotací typu Nonnull, se pokusí uvolnit tento vztah určením anotace typu Nullable (zákaz návratu kontravarianty).
  5. Metoda potlačující zděděnou metodu, která má deklaraci s povolenou hodnotou Null alespoň u jednoho ze svých parametrů, se pokusí zpřísnit toto omezení hodnoty Null určením nenulové anotace pro svůj odpovídající parametr (zákaz kovariantních parametrů).

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 null nebo je deklarován pomocí anotace s povolenou hodnotou Null.

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í:

  1. Metoda deklarovaná s anotací typu Nonnull vrací výraz, u kterého je statisticky zjištěno, že se v některém toku vyhodnocuje na hodnotu Null.
  2. Výraz, u kterého je statisticky zjištěno, že se v některých tocích vyhodnocuje s hodnotou Null, je předán jako argument ve volání metody, kde je odpovídající parametr volané metody deklarován s anotací typu Nonnull.
  3. Výraz, u kterého je statisticky zjištěno, že se v některých tocích vyhodnocuje s hodnotou Null, je přiřazen k lokální proměnné deklarované s anotací typu Nonnull.

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í:

  1. Metoda deklarovaná s anotací typu Nonnull vrací výraz, pro který není dostatek informací o nulovosti, aby mohlo být statisticky prokázáno, že při běhu žádný tok nepředá hodnotu Null.
  2. Výraz, pro který nejsou k dispozici dostatečné informace o výskytu hodnot Null, aby bylo možné staticky prokázat, že se za běhu nevyhodnocuje jako Null, je předán jako argument ve volání metody, kde je deklarován odpovídající parametr volané metody s anotací typu Nonnull.
  3. Výraz, pro který nejsou k dispozici dostatečné informace o výskytu hodnot Null, aby bylo možné staticky prokázat, že se za běhu nevyhodnocuje jako Null, je přiřazen do lokální proměnné, která je deklarována s anotací typu Nonnull.

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:

  1. Když balík neobsahuje výchozí anotaci týkající se hodnot Null v důsledku chybějícího souboru package-info.java nebo chybějící výchozí anotace týkající se hodnot Null v souboru package-info.java.
  2. Když typ ve výchozím balíku neobsahuje výchozí anotaci týkající se hodnot Null.

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:

  • org.eclipse.jdt.annotation.Nullable: Úplný název typu anotace jazyka Java, jehož použití na typ v podpisu metody nebo deklaraci proměnné bude interpretováno jako specifikace, že je hodnota Null na této pozici povolenou hodnotu.
    Aktuálně podporované pozice: parametry metody, návratový typ metody a lokální proměnné.
  • org.eclipse.jdt.annotation.NonNull: Úplný název typu anotace jazyka Java, jehož použití na typ v podpisu metody nebo deklaraci proměnné bude interpretováno jako specifikace, že na této pozici není hodnota Null povolenou hodnotu.
    Aktuálně podporované pozice: parametry metody, návratový typ metody a lokální proměnné.
  • org.eclipse.jdt.annotation.NonNullByDefault: Úplný název typu anotace jazyka Java. Při použití na prvek bez argumentu anotace budou všechny neanotované typy v podpisech metod v rámci anotovaného prvku považovány za typy s anotací Non-null.
    Naopak když je anotace použita s argumentem tvořeným konstantou 'false', budou pro anotovaný prvek zrušeny všechny odpovídající výchozí hodnoty ve vnějších rozsazí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).

Související koncepce

Pohled Problémy
Rychlá oprava
Tvůrce Java