为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Android API <24中将对象包装在lambda中

如何在Android API <24中将对象包装在lambda中

MYYA 2021-04-29 06:10:13
我想迭代一个集合,对每个项目进行操作。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中可以正常工作。



查看完整回答
反对 回复 2021-05-12
  • 1 回答
  • 0 关注
  • 155 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信