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(); } } }