7.4. 通知和事件
强和弱计数器都支持侦听器接收其更新事件。侦听器必须实施 CounterListener,并可以使用以下方法注册:
<T extends CounterListener> Handle<T> addListener(T listener);
<T extends CounterListener> Handle<T> addListener(T listener);
CounterListener 有以下接口:
public interface CounterListener {
void onUpdate(CounterEvent entry);
}
public interface CounterListener {
void onUpdate(CounterEvent entry);
}
返回的 Handle 对象具有在不再需要时删除 CounterListener 的主要目标。另外,它还允许访问它处理的 CounterListener 实例。它有以下接口:
public interface Handle<T extends CounterListener> {
T getCounterListener();
void remove();
}
public interface Handle<T extends CounterListener> {
T getCounterListener();
void remove();
}
最后,CounterEvent 具有上一个和当前的值和状态。它有以下接口:
注意
对于未绑定的强计数器和弱计数器,状态始终是 State.VALID。state.LOWER_BOUND_REACHED 和 State.UPPER_BOUND_REACHED 仅对有界强计数器有效。
警告
弱计数器 reset () 操作将触发带有中间值的多个通知。