Sobes.tech
Junior

Č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.