oktatas:programozas:java:java_callback
Tartalomjegyzék
Java Callback
- Szerző: Sallai András
- Copyright © 2022, Sallai András
- Szerkesztve: 2022, 2023
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
A callback függvényekről
A callback egy olyan függvény, ami paraméterként egy másik függvényt vár.
Egy műveletet, egy függvényt egy másik függvénynek szeretnénk átadni végrehajtásra.
Általában eseménykezelésre, aszinkron műveletekre használjuk.
Runnable osztály
Az alábbi példában, a hívás helyén névtelen függvényt adunk át a valami() függvény számára.
Interfész
Készíthetünk saját interfészt is a megvalósításhoz:
Callback paraméterrel
ActionListener megvalósítás
Egy Messanger nevű komponenst készítünk, amihez eseményt lehet rendelni. Az esemény itt szimulált. Nem egy egér kattintás, vagy egy szerver válasza, csak egy Thread.sleep() hívás.
- Main.java
interface ActionListener { void onMessage(String message); } class Messanger { void addActionListener(ActionListener listener) { // Az aszinkron folyamat szimulációja new Thread(() -> { try { Thread.sleep(3000); // Szimulált várakozás 3 másodpercig } catch (InterruptedException e) { e.printStackTrace(); } // Majd hívjuk meg a callback függvényt a háttérszálon listener.onMessage("Üzenet érkezett"); }).start(); } } public class Main { public static void main(String[] args) { Messanger messanger = new Messanger(); // messanger.addActionListener(new ActionListener() { // public void onMessage(String msg) { // System.out.println(msg); // } // }); messanger.addActionListener(msg -> { System.out.println(msg); }); System.out.println("Program 10 másodpercig fut..."); // Várakozzunk, hogy lássuk az aszinkron működést try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } } }
oktatas/programozas/java/java_callback.txt · Utolsó módosítás: 2023/11/21 20:01 szerkesztette: admin