java手写一个监听器
时间: 2023-10-23 09:29:33 浏览: 134
自己编写一个Java监听器
首先需要了解什么是监听器,监听器是Java中的一种设计模式,它可以用来监听某个对象的状态变化。下面是一个简单的Java手写监听器的示例:
定义一个事件类:
```java
public class Event {
private String message;
public Event(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
```
定义一个监听器接口:
```java
public interface Listener {
void handleEvent(Event event);
}
```
定义一个事件源类:
```java
public class EventSource {
private List<Listener> listeners = new ArrayList<>();
public void addListener(Listener listener) {
listeners.add(listener);
}
public void removeListener(Listener listener) {
listeners.remove(listener);
}
public void fireEvent(Event event) {
for (Listener listener : listeners) {
listener.handleEvent(event);
}
}
}
```
在上面的代码中,我们定义了一个事件源类EventSource,它包含了一个监听器列表listeners,以及三个方法:addListener、removeListener和fireEvent。
addListener和removeListener分别用来添加和移除监听器。fireEvent方法用来触发事件,它会遍历所有的监听器并调用它们的handleEvent方法。
现在我们可以实现一个具体的监听器:
```java
public class MyListener implements Listener {
@Override
public void handleEvent(Event event) {
System.out.println("Received message: " + event.getMessage());
}
}
```
最后,我们可以测试一下:
```java
public class Main {
public static void main(String[] args) {
EventSource eventSource = new EventSource();
MyListener listener = new MyListener();
eventSource.addListener(listener);
eventSource.fireEvent(new Event("Hello, world!"));
eventSource.removeListener(listener);
}
}
```
运行结果:
```
Received message: Hello, world!
```
在上面的代码中,我们创建了一个事件源对象eventSource,并添加了一个监听器MyListener,然后触发了事件并传入了一个消息,最后移除了监听器。在控制台上输出了接收到的消息。
阅读全文