我正在为Netbeans和Android Studio使用Java JDK版本1.8.0_60-b27。我无法在Android Studio项目中导入java.util.function.Consumer
和java.util.stream.Stream
个包。但我可以在我的Netbeans项目中导入相同的内容。是什么原因?
答案 0 :(得分:1)
在Google I / O 2016中,他们宣布Android现在支持Java 8的某些功能,但不支持所有功能。
功能如: - 默认和静态接口方法 - Lambda表达式(也可在API级别23及更低版本上使用) - 可重复的注释 - 方法参考(也可在API级别23及更低版本上获得) - 类型注释(也可在API级别23及更低版本上使用)
此外,还提供以下Java 8语言API:
反思和与语言相关的API: java.lang.FunctionalInterface java.lang.annotation.Repeatable java.lang.reflect.Method.isDefault() 和可重复注释相关的Reflection API,例如AnnotatedElement.getAnnotationsByType(Class)实用程序API:java.util.function java.util.stream
你应该做的就是使用新的插孔编译器,为此你只需将它添加到你的gradle文件build.gradle“module:app”:
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
<强> Refrences 强> https://developer.android.com/guide/platform/j8-jack.html https://www.youtube.com/watch?v=B08iLAtS3AQ&feature=youtu.be&t=28m14s
答案 1 :(得分:0)
Android仅支持Java 7.因此,您无法使用Java 8引入的Java Stream API。此功能存在一些反向端口,例如
Streams的https://github.com/aNNiMON/Lightweight-Stream-API
或
对于Lambda-Expressions,