在Android Studio中导入java.util.stream.Stream时出错

时间:2016-01-12 10:38:23

标签: java android android-studio

我正在为Netbeans和Android Studio使用Java JDK版本1.8.0_60-b27。我无法在Android Studio项目中导入java.util.function.Consumerjava.util.stream.Stream个包。但我可以在我的Netbeans项目中导入相同的内容。是什么原因?

2 个答案:

答案 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,

https://github.com/orfjackal/retrolambda