AndroidStudio中使用Java8

Android Studio 3.0 及以上版本已经支持所有 Java 7 语言功能,以及部分 Java 8 语言功能(具体因平台版本而异)。

注:在开发 Android 应用时,可以选择使用 Java 8 语言功能。 您可以将项目的源代码和目标代码兼容性值保留为 Java 7,但仍须使用 JDK 8 进行编译。



使用Java8特性
Module.gradle -> android

android {
  ...
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}



支持的 Java 8 语言功能和 API
虽然 Android Studio 并非支持所有 Java 8 语言功能,但未来发布的 IDE 版本将会增加更多功能。 目前,部分功能和 API 已可使用,具体取决于您所使用的 minSdkVersion,详见下表。

Java 8 语言功能 兼容的 minSdkVersion
Lambda 表达式 任意。 然而,只有在 Lambda 采集的所有值可序列化时才支持 Lambda 序列化。
函数引用 任意。
类型注解 任意。 然而,类型注解信息仅在编译时可用,在运行时不可用。 此外,在 API 级别 24 及更低级别中,平台支持 TYPE,而不支持 ElementType.TYPE_USEElementType.TYPE_PARAMETER
默认和静态接口函数 任意。
重复注解 任意。
Java 8 语言API 兼容的 minSdkVersion
java.lang.annotation.Repeatable API 级别 24 或更高级别。
AnnotatedElement.getAnnotationsByType(Class) API 级别 24 或更高级别。
java.util.stream API 级别 24 或更高级别。
java.lang.FunctionalInterface API 级别 24 或更高级别。
java.lang.reflect.Method.isDefault() API 级别 24 或更高级别。
java.util.function API 级别 24 或更高级别。

除了上述 Java 8 语言功能和 API 之外,Android Studio 3.0 及更高版本对 try-with-resources 的支持扩展到所有级别的 Android API。




停用对 Java 8 语言功能的支持
如果您遇到与 Java 8 语言功能支持相关的问题,可在 gradle.properties 文件中加入以下代码来停用此支持:

android.enableDesugar=false

你可能感兴趣的:(AndroidStudio中使用Java8)