我在这里读过这篇 文章。但是我仍然无法在 minSdkVersion < 24 上运行包含 Java 8 Stream API 功能的代码,如下所示。
List<Car> newCars = cars.stream()
.filter(s -> s.getColor().equals("red"))
.collect(Collectors.toList());
由于错误消息,这不会运行
调用需要 API 级别 24(当前最小值为 15):java.util.Collection#stream
那么有人知道解决方案吗?
原文由 unlimited101 发布,翻译遵循 CC BY-SA 4.0 许可协议
[原始答案]
您不能在 API 级别 < 24 上使用 Java8 流。
但是,有些库向后移植了一些流功能
https://github.com/aNNiMON/Lightweight-Stream-API
https://github.com/konmik/solid
https://sourceforge.net/projects/streamsupport/(@sartorius 在评论中提到)
[更新k3b 2019-05-23]
https://github.com/retrostreams/android-retrostreams 是 streamsupport 的衍生产品,它利用 Android Studio 3.x D8 / desugar 工具链的能力跨 Jar 文件边界使用接口默认和静态方法。还有其他 android-retroXXX 的链接,即 CompletableFuture。
[更新aeracode 2020-07-24]
好消息,现在我们可以使用 Java 8 Stream API 等, _而不需要最低 API 级别_。