不同对象上的事件监听器
创始人
2025-01-08 23:00:28
0

在不同对象上添加事件监听器可以通过以下几种方法实现:

  1. 使用匿名内部类作为监听器:
// 监听器接口
public interface MyListener {
    void onEvent();
}

// 监听器实现类
public class MyListenerImpl implements MyListener {
    @Override
    public void onEvent() {
        // 事件处理逻辑
    }
}

// 示例对象1
public class Object1 {
    private MyListener listener;
    
    public void setListener(MyListener listener) {
        this.listener = listener;
    }
    
    public void doSomething() {
        // 触发事件
        if (listener != null) {
            listener.onEvent();
        }
    }
}

// 示例对象2
public class Object2 {
    // 监听器实例
    private MyListener listener = new MyListenerImpl();
    
    public void doSomething() {
        // 触发事件
        listener.onEvent();
    }
}

// 使用示例
public class Main {
    public static void main(String[] args) {
        Object1 obj1 = new Object1();
        obj1.setListener(new MyListenerImpl());
        obj1.doSomething();
        
        Object2 obj2 = new Object2();
        obj2.doSomething();
    }
}
  1. 使用内部类作为监听器:
// 示例对象1
public class Object1 {
    private MyListener listener;
    
    public void setListener(MyListener listener) {
        this.listener = listener;
    }
    
    public void doSomething() {
        // 触发事件
        if (listener != null) {
            listener.onEvent();
        }
    }
    
    // 内部类作为监听器
    private class MyListenerImpl implements MyListener {
        @Override
        public void onEvent() {
            // 事件处理逻辑
        }
    }
}

// 示例对象2
public class Object2 {
    // 内部类作为监听器
    private class MyListenerImpl implements MyListener {
        @Override
        public void onEvent() {
            // 事件处理逻辑
        }
    }
    
    public void doSomething() {
        // 触发事件
        MyListener listener = new MyListenerImpl();
        listener.onEvent();
    }
}

// 使用示例
public class Main {
    public static void main(String[] args) {
        Object1 obj1 = new Object1();
        obj1.setListener(obj1.new MyListenerImpl());
        obj1.doSomething();
        
        Object2 obj2 = new Object2();
        obj2.doSomething();
    }
}
  1. 使用lambda表达式作为监听器:
// 示例对象1
public class Object1 {
    private MyListener listener;
    
    public void setListener(MyListener listener) {
        this.listener = listener;
    }
    
    public void doSomething() {
        // 触发事件
        if (listener != null) {
            listener.onEvent();
        }
    }
}

// 示例对象2
public class Object2 {
    public void doSomething() {
        // 触发事件
        MyListener listener = () -> {
            // 事件处理逻辑
        };
        listener.onEvent();
    }
}

// 使用示例
public class Main {
    public static void main(String[] args) {
        Object1 obj1 = new Object1();
        obj1.setListener(() -> {
            // 事件处理逻辑
        });
        obj1.doSomething();
        
        Object2 obj2 = new Object2();
        obj2.doSomething();
    }
}

这些方法可以适用于不同的场景,选择合适的方法取决于具体的需求和设计。

相关内容

热门资讯

黑科技代打(wpk有透视辅助)... 黑科技代打(wpk有透视辅助)外挂透视辅助安装(透视)果然是有挂(黑科技解说)1、点击下载安装,wp...
黑科技智能ai(WepokE)... 黑科技智能ai(WepokE)ai代打(黑科技)软件靠谱(总是存在有挂)1)辅助挂:进一步探索辅助透...
黑科技私人局(微扑克辅助透视技... 黑科技私人局(微扑克辅助透视技能教程)外挂透明挂辅助软件(透视)都是存在有挂(黑科技辅助)所有人都在...
透视免费(wPK)有透视辅助吗... 透视免费(wPK)有透视辅助吗(黑科技)透视辅助(原来是真的有挂);是一款可以让一直输的玩家,快速成...
黑科技软件(德州之星有辅助挂)... 黑科技软件(德州之星有辅助挂)外挂黑科技辅助助手(透视)原来真的是有挂(黑科技详情)1、任何德州之星...
黑科技ai代打(Wepoke)... 1、黑科技ai代打(Wepoke)系统规律解析(黑科技)ai代打(一直有挂);代表性(透视辅助软件透...
黑科技规律(微扑克wpk辅助透... 黑科技规律(微扑克wpk辅助透视)外挂透视辅助神器(透视)果然是真的有挂(黑科技细节);1、微扑克w...
黑科技玄学(wepoke)软件... 黑科技玄学(wepoke)软件透明挂是真的吗(黑科技)辅助挂(确实有挂)1. ai辅助创建新账号,点...
黑科技美元局(wpkai辅助实... 黑科技美元局(wpkai辅助实战效果)外挂透视辅助教程(透视)果然是有挂(黑科技介绍)1、玩家可以在...
黑科技最新(we辅助poker... 黑科技最新(we辅助poker)辅助挂(黑科技)辅助多久会检测到(本来存在有挂)1、这是跨平台的黑科...