Čo sú to anonymné triedy v Jave a kde ich možno použiť?
sobes.tech AI
Odpoveď od AI
Anonymné triedy v Jave sú lokálne triedy bez mena. Sú deklarované a vytvorené súčasne. Zvyčajne sa používajú, keď je potrebná jednorazová implementácia rozhrania alebo rozšírenie abstraktnej alebo bežnej triedy.
Použitie anonymných tried:
-
Spracovatelia udalostí v GUI: Často sa používajú na vytváranie spracovateľov kliknutí na tlačidlá alebo iných akcií používateľa.
// Príklad s Swing ActionListener JButton button = new JButton("Klikni na mňa"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Tlačidlo stlačené!"); } }); -
Implementácia rozhraní s jednou abstraktnou metódou (SAM rozhrania): Pred objavením sa lambda výrazov to bol hlavný spôsob, ako implementovať funkcionalitu pre takéto rozhrania.
// Príklad s Runnable new Thread(new Runnable() { @Override public void run() { System.out.println("Vlákno spustené"); } }).start(); -
Vytváranie objektov "za behu": Keď je potrebné rýchlo vytvoriť objekt s upraveným správaním voči existujúcej triede bez nutnosti vytvárania samostatnej pomenovanej triedy.
// Príklad rozšírenia abstraktnej triedy AbstractList<String> cityList = new AbstractList<String>() { private String[] cities = {"Moskov", "Sankt-Peterburg"}; @Override public String get(int index) { return cities[index]; } @Override public int size() { return cities.length; } }; System.out.println(cityList.get(0)); // Vypíše: Moskva
Anonymné triedy majú prístup k lokálnym premenným, ktoré sú final alebo efektívne final v oblasti, v ktorej sú deklarované. Nemôžu mať statické členy a nemôžu byť abstraktné alebo final.