java手写一个监听器
时间: 2023-10-23 15:23:27 浏览: 47
要手写一个监听器,需要创建一个接口,其中包含要监听的事件的方法。此接口将被实现,以便在事件发生时可以执行相应的操作。以下是一个简单的例子:
```
public interface MyEventListener {
void onEventTriggered(Event event);
}
```
在这个例子中,我们定义了一个名为 MyEventListener 的接口,它有一个方法 onEventTriggered,该方法接收一个 Event 对象作为参数。这个接口将由实现它的类来实现,并在事件发生时执行相应的操作。
要使用这个监听器,我们需要创建一个事件类,并在事件发生时通知监听器。这可以通过调用 MyEventListener 接口的 onEventTriggered 方法来实现。
```
public class Event {
private List<MyEventListener> listeners = new ArrayList<>();
public void addListener(MyEventListener listener) {
listeners.add(listener);
}
public void removeListener(MyEventListener listener) {
listeners.remove(listener);
}
public void trigger() {
for (MyEventListener listener : listeners) {
listener.onEventTriggered(this);
}
}
}
```
在这个例子中,我们创建了一个名为 Event 的类,它具有添加、移除和触发监听器的方法。当事件发生时,我们可以调用 trigger 方法来通知所有监听器。
现在我们可以创建一个实现 MyEventListener 接口的类,并将其添加到 Event 对象的监听器列表中。例如:
```
public class MyListener implements MyEventListener {
@Override
public void onEventTriggered(Event event) {
System.out.println("Event triggered");
}
}
public static void main(String[] args) {
Event event = new Event();
MyListener listener = new MyListener();
event.addListener(listener);
// Trigger the event
event.trigger();
// Remove the listener
event.removeListener(listener);
}
```
在这个例子中,我们创建了一个 MyListener 类来实现 MyEventListener 接口。我们将 MyListener 实例添加到 Event 对象的监听器列表中,并触发事件。当事件发生时,onEventTriggered 方法将被调用,并输出 "Event triggered"。最后,我们从监听器列表中移除了 MyListener 实例。