Android N中的Java8流API
据介绍,从安卓N开始,安卓API应该支持Java流 但是,使用安卓N预览SDK,我无法在我的项目中使用任何流API(该项目的最低配置为安卓N,目标和构建SDK版本)Android N中的Java8流API,java,android,lambda,android-7.0-nougat,Java,Android,Lambda,Android 7.0 Nougat,据介绍,从安卓N开始,安卓API应该支持Java流 但是,使用安卓N预览SDK,我无法在我的项目中使用任何流API(该项目的最低配置为安卓N,目标和构建SDK版本) java.util.stream包似乎丢失了,我尝试过的所有集合实现的stream()方法也是如此 必要的类是否尚未包含在SDK的当前预览版本中?它尚未包含在当前预览版本中,但已合并到AOSP Git master中。看这里 编辑: 为了避免可能出现的混淆:2016年3月,OP提出了这个问题,Android N developerp
java.util.stream
包似乎丢失了,我尝试过的所有集合实现的stream()
方法也是如此
必要的类是否尚未包含在SDK的当前预览版本中?它尚未包含在当前预览版本中,但已合并到AOSP Git master中。看这里 编辑: 为了避免可能出现的混淆:2016年3月,OP提出了这个问题,Android N developer
preview-1
是目前已知的Android 7.0“牛轧糖”的唯一公开版本
preview-1
build实际上不包括Java8流API,但它是在开发人员preview-2
build之后不久(一个月后)添加的
因此,Android 7.0 API level 24现在是否支持Java 8 Stream API。Java 8的所有功能都不受支持,有些功能只在预览版中受支持。因此Android开发者的博文不正确?它明确声明“默认和静态方法、流和函数接口——现在在N和更高版本上也可用”。这是根据开发者的文档。流API不是Java 8语言的特性(由新的Jack编译器实现,可用于早期的Android目标)。它将在Android SDK中作为一组接口和实现类提供。请区分Java语言、字节码和库功能。例如,Jack(顺便说一句,它已经可用并且工作正常)编译Lambdas的方式与Dalvik的旧版本向后兼容。(作为比较,“真正”的JDK使用Java 7字节码功能(InvokedDynamic)和Java 8类(LambdaMetafactory)实现它们。)另一方面,即使在android上,Streams也是一个库功能,仅对N+可用。请更新您的答案-最新版本的android 7.0 SDK平台中包含了Stream API(API 24)。