observable_Java Observable addObserver()方法与示例

observable

可观察的类addObserver()方法 (Observable Class addObserver() method)

  • addObserver() method is available in java.util package.

    addObserver()方法在java.util包中可用。

  • addObserver() method is used to insert the given observer (obs) to the bundles of observers for this Observable object.

    addObserver()方法用于将给定的观察者(obs)插入到此Observable对象的观察者束中。

  • addObserver() method is a non-static method, it is accessible with the class object only and if we try to access the method with the class name then we will get an error.

    addObserver()方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。

  • addObserver() method may throw an exception at the time of adding an observer.

    在添加观察者时, addObserver()方法可能会引发异常。

Syntax:

句法:

    protected void addObserver(Observer obs);

Parameter(s):

参数:

  • Observer obs – represents the observer object to be inserted.

    Observer obs –表示要插入的观察者对象。

Return value:

返回值:

The return type of the method is void, it returns nothing.

该方法的返回类型为void ,不返回任何内容。

Example:

例:

// Java program to demonstrate the example 
// of void addObserver(Observer obs) method of Observable

import java.util.*;

// Implement Observers class 
class Observers implements Observer {
    public void update(Observable obj, Object ob) {
        System.out.println("Obs is added");
    }
}

// Implement Observed Class
class Observed extends Observable {
    void added() {
        setChanged();
        notifyObservers();
    }
}

public class Main {
    // Implement Main Method
    public static void main(String args[]) {
        Observed observed = new Observed();
        Observers obs = new Observers();
        observed.addObserver(obs);
        observed.added();
    }
}

Output

输出量

Obs is added


翻译自: https://www.includehelp.com/java/observable-addobserver-method-with-example.aspx

observable

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现对List集合的add方法进行监听,可以利用Java的观察者模式(Observer Pattern)来实现。具体步骤如下: 1. 创建一个类,继承Observable类,并重写List的add方法。 2. 在add方法中,先调用List对象的add方法将元素添加到List集合中,然后调用Observable类的setChanged和notifyObservers方法,将添加的元素和其索引打包成一个通知对象,通知所有观察者(即监听器)。 3. 在该类中创建一个addListener方法,用于向观察者列表中添加监听器。 4. 在该类中创建一个removeListener方法,用于从观察者列表中移除监听器。 5. 当有元素被添加到List集合中时,调用Observable类的setChanged和notifyObservers方法,通知所有观察者。 下面是一个简单的示例代码,可以参考实现: ``` import java.util.ArrayList; import java.util.List; import java.util.Observable; import java.util.Observer; public class ListObservable<E> extends Observable implements List<E> { private final List<E> list = new ArrayList<>(); @Override public boolean add(E element) { boolean added = list.add(element); if (added) { int index = list.indexOf(element); setChanged(); notifyObservers(new AddNotification(index, element)); } return added; } @Override public E get(int index) { return list.get(index); } @Override public int size() { return list.size(); } // other methods of List interface omitted for brevity public void addListener(Observer observer) { addObserver(observer); } public void removeListener(Observer observer) { deleteObserver(observer); } private static class AddNotification<E> { private final int index; private final E element; public AddNotification(int index, E element) { this.index = index; this.element = element; } public int getIndex() { return index; } public E getElement() { return element; } } } ``` 在该示例代码中,ListObservable类继承了Observable类,并实现了List接口,用于监听List集合的add操作。在add方法中,先调用List对象的add方法将元素添加到List集合中,然后调用Observable类的setChanged和notifyObservers方法,将添加的元素和其索引打包成一个通知对象,通知所有观察者(即监听器)。 该类还实现了addListener和removeListener方法,用于向观察者列表中添加和移除监听器。 最后,在该类中定义了一个AddNotification内部类,用于封装添加元素的通知信息。当有元素被添加到List集合中时,调用Observable类的setChanged和notifyObservers方法,通知所有观察者。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值