Eclipse a Java 7

Od verze 3.7.1 zahrnuje platforma Eclipse úplnou podporu nových funkcí jazyka Java přítomných ve specifikaci Java SE 7. Jedním z nejdůležitějších důsledků této podpory je to, že ji vůbec nemusíte zaznamenat - vše, co očekáváte od Java verze 6, včetně úprav, kompilování, ladění, rychlých oprav, refaktoringů, akcí se zdrojem, hledání atd., bude bez problémů pracovat s novou syntaxí Java verze 7. V tomto dokumentu vám představíme některé z nejzajímavějších schopností produktu Eclipse, které uživatelé naleznou při práci s Java 7.

Všimněte si, že obě čísla verzí ('1.7' a '7') se používají k identifikaci verze Java Platform Standard Edition. Verze '7' označuje verzi produktu, zatímco '1.7' je verze pro vývojáře a také se používá pro úroveň shody kompilátoru.

Nezbytné předpoklady

Chcete-li vytvářet kód kompatibilní se standardem Java 7, budete potřebovat běhové prostředí Java Runtime Environment (JRE) verze Java 7. Pokud Eclipse spustíte poprvé s použitím JRE Java 7, bude jej potom nadále používat standardně. Jinak budete muset k registraci v Eclipse použít stránku předvoleb Otevřít stránku předvoleb instalovaných prostředí JRE Java > Instalovaná prostředí JRE.

Můžete nakonfigurovat také prováděcí prostředí Java 7 prostřednictvím stránky předvoleb Otevře stránku předvoleb Prováděcí prostředí Java > Instalovaná prostředí JRE > Prováděcí prostředí:

Stránka předvoleb prováděcích prostředí

Chcete-li převést existující projekt Java na verzi Java 7, otevřete Vlastnosti Systémové knihovny JRE a vyberte prováděcí prostředí: JavaSE-1.7.

Dialogové okno vlastností

Popis rozhraní API prováděcího prostředí pro Java 7 je k dispozici na příslušném webu aktualizace. Po instalaci je možné, že budou zjištěny neplatné odkazy na knihovny systému Java 7:

Stránka předvoleb Chyby/Varování API zobrazující nový popis Java 7 EE

Funkce jazyka Java 7

Java 7 nabízí sadu malých vylepšení jazyka Java (tzv. projekt Coin), nový bajtový kód pro dynamické vyvolávání metod a mnoho doplňků knihoven. Tento dokument velmi stručně představuje některé z nových funkcí jazyka ve verzi Java 7, nejde však o řádný výukový materiál pro tyto funkce. Další informace naleznete zde.

Zlepšené odvozování typů pro vytváření generických instancí (kosočtverec)

Tato změna jazyka umožňuje vynechat v řadě situací explicitní argumenty typu na konstruktory parametrizovaných tříd. Kompilátor odvodí vynechané argumenty typu na základě očekávaného typu.

Je-li to možné, vkládá obsahová asistence pro vyvolání konstruktorů místo explicitních argumentů typu kosočtverec.

Obsahová asistence po použití metody 'new HashMap'

Výsledek:

Obsahová asistence vložila metodu 'new HashMap<>()'

Kompilátor také dokáže zjistit redundantní specifikace argumentů typu, které můžete odebrat pomocí rychlé opravy Odebrat argumenty typu.

Redundantní specifikace argumentů typu

Tato volba je standardně zakázána, ale lze ji povolit na stránce předvoleb Otevře stránku předvoleb chyb/varování Java > Kompilátor > Chyby/varování:

Varování ohledně redundantních argumentů typu

Kromě toho můžete pomocí rychlé asistence také vkládat odvozené argumenty typu kosočtverce.

Vložit odvozené argumenty typu

Pokyn: To funguje jako rychlá oprava i v kódu verzí 1.5 a 1.6, kde je kosočtverec chyba syntaxe.

Vícenásobné zachycení

V jazyce Java 7 můžete pomocí jednoho bloku catch zachycovat více typů výjimek.

Značení výskytů v editoru Java lze použít ke zvýraznění příkazů, které generují konkrétní výjimku.

Značení výskytů

Akce Zdroj > Uzavřít do > Blok try/multi-catch umožňuje uzavřít vybrané příkazy do bloku try/multi-catch. To je k dispozici také jako rychlá oprava Uzavřít do bloku try/multi-catch v případě, že existuje více nezachycených výjimek.

Uzavřít do bloku try/multi-catch

Rychlá oprava Přidat výjimky k existující klauzuli catch umožňuje přidat k existující klauzuli catch nezachycené výjimky.

Přidat výjimky k existující klauzuli catch

Rychlá asistence Použít samostatné bloky catch umožňuje nahradit klauzuli vícenásobného zachycení jednotlivými bloky catch, pro každou výjimku v klauzuli multi-catch jedním.

Použít samostatné bloky catch

Rychlá asistence Přesunout výjimky do samostatného bloku catch umožňuje vyjmout jednu či více vybraných výjimek z klauzule multi-catch.

Přesunout výjimky do samostatného bloku catch

Rychlá asistence Zkombinovat bloky catch umožňuje zkombinovat samostatné bloky catch do jednoho bloku multi-catch. Tato rychlá asistence se nabízí jen, když mají všechny tyto bloky catch stejné tělo.

Zkombinovat bloky catch

Kompilátor ohlásí chybu, pokud byla výjimka v klauzuli multi-catch již zachycena alternativní výjimkou. Rychlá oprava Odebrat výjimku umožňuje takovou výjimku odebrat.

Odebrat výjimku

Kromě toho formátovač nabízí volby Zalamování řádků pro syntaxi příkazu multi-catch. Ty lze nakonfigurovat na stránce předvoleb Otevře stránku předvoleb formátovače Java > Styl kódu > Formátovač v části Zalamování řádků > Příkazy > 'multi-catch'.

Příkaz try-with-resources

Příkaz try-with-resources zajistí, že každý prostředek - java.lang.AutoCloseable - je na konci příkazu uzavřen.

Značení výskytů v editoru Java podporuje syntaxi příkazu try-with-resources. Uzavření '}' příkazu try-with-resources je označeno jako bod ukončení metody, pokud implicitní vyvolání metoda close() vyvolá výjimku. Také je zvýrazněna odpovídající proměnná prostředku.

Značení výskytů

Kompilátor zjišťuje neošetřené výjimky vyvolané automatickým vyvoláním metody close() na prostředku.

Detekce neošetřených výjimek vyvolaných automatickým vyvoláním metody close()

Kompilátor může doporučit použití příkazu try-with-resources, pokud byly prostředky explicitně uzavřeny, ale nebyly deklarovány v příkazech try-with-resources.

Varování kompilátoru pro prostředek, který by měl být spravován příkazem try-with-resource

Tato volba je standardně zakázána, ale lze ji povolit na stránce předvoleb Otevře stránku předvoleb chyb/varování Java > Kompilátor > Chyby/varování:

Varování, že prostředek není spravován prostřednictvím příkazu try-with-resource

Kromě toho formátovač nabízí volby Zalamování řádků a Mezera pro syntaxi příkazu try-with-resources. Ty lze nakonfigurovat na stránce předvoleb Otevře stránku předvoleb formátovače Java > Styl kódu > Formátovač v části Zalamování řádků > Příkazy > 'try-with-resources' a Mezera > Řídicí příkazy > 'try-with-resources'.

Zjednodušené vyvolání metody Varargs

Kompilátor Java 7 generuje varování na webu deklarace metody varargs nebo konstruktoru s nekonkretizovatelným formálním parametrem varargs. Toto varování lze potlačit pomocí anotace @SafeVarargs.

Rychlá oprava Přidat @SafeVarargs je nabízena pro varování ohledně potenciálního znečištění haldy při deklaracích metod.

Přidat @SafeVarargs

Tato rychlá oprava je nabízena také z webů volání.

Přidat @SafeVarargs k deklaraci

Rychlá oprava Odebrat @SafeVarargs je nabízena pro chybné použití anotace @SafeVarargs.

Odebrat @SafeVarargs

Odebrat @SafeVarargs

Řetězce v přepínači

Ve výrazu příkazu switch můžete použít objekt typu String.

Rychlá asistence Převést 'switch' na 'if-else' je určena pro řetězce v příkazu switch.

Rychlá asistence Převést 'switch' na 'if-else'

Všimněte si, že se tato rychlá asistence vyhýbá výjimce NullPointerException ve výsledném kódu.

Binární literály a podtržítka v číselných literálech

V jazyce Java 7 lze integrálové typy (byte, short, int a long) vyjádřit rovněž pomocí systému binárních čísel. Kromě toho se může kdekoli mezi číslicemi číselného literálu vyskytovat libovolný počet znaků podtržítka (_).

Funkce pro změnu hodnoty proměnné během ladění podporuje podtržítka v číselných literálech a binárních literálech:

Příklad přiřazení binárního literálu s podtržítky k celému číslu

Polymorfní metody

Události hover dokumentace Javadoc pro odkazy na polymorfní metody zobrazují podpis skutečně použité metody.

Podpis polymorfní metody v události hover dokumentace javadoc

Spokojené programování!