我想迭代一个集合,对每个项目进行操作。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中已经存在的为此目的的类。
1 回答
慕侠2389804
TA贡献1719条经验 获得超6个赞
是的,您需要声明接口WrapHelper,因为API <24不支持java.util中的Consumer。
总体而言,您可以使用Lighweight-Stream-API库,其中提供了现成的类和接口,例如Supplier,Consumer和Optional。它的工作原理与Java8的新功能几乎相同,并且在API <24中可以正常工作。
添加回答
举报
0/150
提交
取消