我想迭代一个集合,对每个项目进行操作。
Collection<Listener> listeners = ....
interface Listener {
void onEventReceived();
void onShutDown();
}
代码可以是:
void notifyShutdown() {
for(Listener listener:listeners){
listener.onShutDown();
}
}
我想抓住java8 lambdas,所以我声明了一个辅助接口:
interface WrapHelper<T> {
void performAction(T item);
}
和通知方法
public void notifyListeners(WrapHelper<Listener> listenerAction) {
for (Listener listener : listeners) {
listenerAction.performAction(listener);
}
}
因此,我可以声明以下方法:
public void notifyEventReceived() {
notifyListeners(listener -> listener.onEventReceived());
}
public void notifyShutDown() {
notifyListeners(listener -> listener.onShutDown());
}
我的问题是:我需要自己声明接口WrapHelper的是Android API <24中已经存在的为此目的的类。
慕侠2389804
相关分类