我现在可以在Android开发中“使用”Java 8吗?

2022-09-04 00:42:45

我目前安装了Java 7 JDK。这种情况已经有一段时间了。然而,最近,我的教授正在指示全班同学卸载Java JDK 7并安装Java JDK 8,以便能够完成家庭作业等。

我一直在使用Java JDK 7编写和部署Android应用程序而没有任何问题,所以我想知道现在升级JDK 8是否安全?我假设在我的Android开发中我不需要任何Java 8特定的方法或功能。那么,如果我远离这一点,我的Android开发会受到影响吗?

顺便说一句,我无法找到任何官方文档来说明Java JDK 8是否安全或如何使其安全。无论哪种方式,我很快就要升级到Java 8...


答案 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()
    • 和与可重复注释关联的反射 API,例如AnnotatedElement.getAnnotationsByType(Class)
  • 实用程序 API
    • java.util.function
    • java.util.stream

所有你应该做的就是使用新的jack编译器,要做到这一点,你只需要把它添加到你的gradle文件中:build.gradle (Module: app)

android {
  ...
  defaultConfig {
    ...
    jackOptions {
      enabled true
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

引用:


答案 2

如果你一直在使用Java 7来部署Android应用程序,那么可以肯定的是,到目前为止,你还没有使用任何Java 8功能,所以我不明白它有什么关系。

按照教师的指示进行操作,当您为学校做作业时,只需在项目结构中选择JDK或语言级别即可。

CTRL + ALT + S选择Project

您可以默认使用 Java 8 SDK,但将其限制为 Android 应用程序的 Java 7 功能。或者,您可以简单地将家庭作业项目设置为 Java 8 SDK。

假设Android Studio包括Intellij的核心设置,那么这里就会四肢着地。


推荐