您好,登录后才能下订单哦!
在Java中,要创建自定义Observer,您需要遵循以下步骤:
import java.util.Observable;
import java.util.Observer;
public class CustomObservable extends Observable {
private String message;
public void setMessage(String message) {
this.message = message;
setChanged(); // 标记为已更改,以便通知观察者
notifyObservers(); // 通知所有观察者
}
public String getMessage() {
return message;
}
}
在这个例子中,我们创建了一个名为CustomObservable的类,它继承了Observable类。我们添加了一个名为message的私有成员变量,并提供了setMessage和getMessage方法来设置和获取消息。当setMessage方法被调用时,我们使用setChanged()方法标记为已更改,然后使用notifyObservers()方法通知所有观察者。
public class CustomObserver implements Observer {
private String name;
public CustomObserver(String name) {
this.name = name;
}
@Override
public void update(Observable o, Object arg) {
CustomObservable customObservable = (CustomObservable) o;
System.out.println(name + "收到了新消息: " + customObservable.getMessage());
}
}
在这个例子中,我们创建了一个名为CustomObserver的类,它实现了Observer接口。我们为观察者提供了一个构造函数,用于设置观察者的名称。update方法会在观察者收到新消息时被调用。在这个方法中,我们将Observable对象强制转换为CustomObservable类型,并打印出观察者的名称和新消息。
public class Main {
public static void main(String[] args) {
CustomObservable customObservable = new CustomObservable();
CustomObserver customObserver1 = new CustomObserver("观察者1");
CustomObserver customObserver2 = new CustomObserver("观察者2");
customObservable.addObserver(customObserver1);
customObservable.addObserver(customObserver2);
customObservable.setMessage("这是一个自定义消息");
}
}
在主类中,我们创建了CustomObservable和两个CustomObserver实例。我们将这两个观察者添加到CustomObservable实例中,然后调用setMessage方法发送一条新消息。这将导致所有观察者收到新消息并打印出相应的输出。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。