V dnešním díle seriálu pro líné vývojáře (lenost je totiž motorem lidstva), se zaměříme na to, co nám Eclipse nabízí pod pojmy Quick Fix a Quick Assist. Sám nemám o rodílu mezi dvěma pojmy jasno a zdá se mi, že ani samotný Eclipse ne. Je možné, že původně měl Quick Fix sloužit jako rychlá nabídka možností, ale já to používám úplně stejným způsobem jako Content Assist. Tedy k rychlejší tvorbě a úpravám kódu.

Pojďme se tedy podívat, co lze s Quick Fixem a Quick Assistem dělat a jak se používají. Kdykoli Java editor zaznamená v kódu chybu, červeně jí podtrhne a na levém okraji označí žárovičkou. Po kliknutí na žárovičku nebo po stisku Ctrl+1 se zobrazí nabídka, co s danou situací můžeme dělat. Možností je v Eclipse opravdu nepřeberné množství. Zde přehled toho, co považuji za nejužitečnější:

Rychlý import

Eclipse poskytuje spoustu cest k vygenerování vhodného importu: Content Assist, chytrý copy-paste, Organize Imports (Ctrl+Shift+O) a i Quick Fix. Vlastně si nepamatuju, že bych někdy v poslední době psal import ručně. S Quick Fixem je to jednoduché. Stačí kliknout na žárovičku nebo stisknout Ctrl+1 a vybrat vhodný import.

import

Opravy chyb – přetypování

Okamžik, kdy Quick Fix hodně používám, je když potřebuju napsat přetypování. Je to pravděpodobně jenom takový můj zvyk, kdy si šetřím i tu práci napsat závorky a typ. Prostě napíšu kód bez přetypování a pak pomocí Quick Fixu si nechám přiřazení “opravit”. Jsem tak zas o kousek rychlejší, než kdybych to psal ručně :)

cast

Vývoj shora dolů

Nebo jakým je to vlastně směrem. Prostě implementuju například servisní vrstvu a potřebuju nějakou metodu na DAO objektu. Ale neudělám to tak, že si tu metodu vyvinu předem, ale nechám si jí Quick Fixem vygenerovat.

Například píšu autentizaci ve své aplikaci a potřebuji metodu findByUsername() na UserDao. Neudělám to ale tak, že bych přešel do jiné třídy a začal si to připravovat nejdřív tam. Naopak. Zůstanu ve své vrstvě a nechám si pomoc s doděláváním chybějících metod později. To samé funguje pro privátní metody v té samé třídě a řadu dalších podobných případů.

createMethod

Teď tedy máme vygenerovanou metodu na rozhraní, ale je potřeba doplnit implementaci ve třídě HibernateUserDao. A opět jsme líní, tak si necháme metodu předgenerovat. Tento způsob používám i třeba v situaci, kdy existující třídě nechám implementovat rozhraní navíc a potřebuju doplnit několik metod najednou.

methods

Změna v signatuře metody

Stejně jako v případě nové metody lze i změny v parametrech a návratových typech metody dělat pomocí Quick Assistu. Zjistíme např. že do metody z minulého příkladu potřebujeme ještě poslat parametr s heslem. Opět můžeme postupovat obráceným směrem proti kompilátoru. Dokonce se Eclipse snaží hádat název parametru, který bude v tomto případě password. Můžeme parametry i odebírat a měnit návratové hodnoty.

addParam

Ošetření výjimek

Pokud metoda vyhazuje výjimku, která se musí ošetřit dává nám Eclipse na výběr několik možností. Můžeme si nechat vygenerovat try-catch blok a nebo nastavit throws na metodě. Případně pokud již existuje try-catch blok, tak Eclipse nabídne možnost, aby se nová výjimka připojila k existujícímu bloku.

throws

Odstranění bloku

Někdy se hodí rychle a bezpečně odstranit obklopující blok kódu. Následující příklad ukazuje možnost odstranění try-catch bloku.

remove

Závěr

Jako v minulém díle nezbývá než konstatovat, že pokud chceme být efektivní, je potřeba se naučit možnosti, které nabízí Quick Fix a Quick Assist. V příštím díle se budeme věnovat šablonám kódu (Code Templates).

Předchozí díl: Eclipse efektivně (1.) – Content Assist