java - 为什么 Java 8 Streams 只能从 API 级别 24 开始使用?

标签 java android java-8 java-stream

Supported Java 8 Language Features and APIs指出我们可以在具有任何最低 sdk API 级别的 android 项目中使用默认方法和 lambda 表达式。

但是,Stream 库 (java.util.stream) 仅支持 API 24 及更高版本。有人可以阐明为什么会这样吗?对我来说这没有意义,因为据我了解,与添加 lambda 或默认方法不同,添加流 API 不需要需要修改 JVM;它只是利用了 Java 8 的特性,比如集合的默认方法,并向 java util 库添加了一些新代码?

最佳答案

Can somebody please shed some light on why this is the case?

因为谷歌没有时光机。或者,即使是,他们也不会使用它来“重新识别”以前版本的 Android。

it simply leverages Java 8 features like default methods on collections and adds some new code to java util library?

正确。但是,Google 无法更改旧版 Android 上的 java.util 类。即使通过库添加新的 java.util 类也是一个问题。

关于java - 为什么 Java 8 Streams 只能从 API 级别 24 开始使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49695326/

相关文章:

java - 无法使用 JSoup 解析 XML(来自 Web)

java - Java 中的 OR 运算符

java - 如何从 jni 获取字符串资源 ID?

android - 广播接收器没有收到 Intent

android - Android 中 dip/dp 的多屏幕支持?

java - lambda 表达式的类型推断限制

java - 为什么我不能使用这种运算符组合来使 NOR 适应 Java

java - 在 Hibernate 中映射具有递增列的复合键

java - 拆分行并通过使用 Java 8 Streams 读取文件来处理它们

java - 从对象列表中获取属性的聚合列表(Java 8)