【问题标题】:When default methods will be supported (Java 8) in Android?Android 何时支持默认方法(Java 8)?
【发布时间】:2014-10-03 07:22:19
【问题描述】:

我想知道我是否可以在 Android 开发的接口中使用默认方法。 该功能包含在 Java 8 中,但我发现 Android Java VM 还不支持它。 有没有办法在 Android 开发中使用默认方法?如果没有,此功能何时可用,是否有此功能的某种时间表?

【问题讨论】:

  • Android Java VM doesn't yet support it。该声明本身回答了您的问题。它说NO
  • @FrankN.Stein 我也试图了解这些是否是此类功能的一些时间表。我已经提炼了这个问题。
  • 再一次,答案似乎是 NO

标签: java android java-8


【解决方案1】:

关于可用性:我认为我们会在 Android N 中看到默认方法。对于 AOSP 上的新 Jack 编译器,已经有很多与默认方法相关的测试。见http://bit.ly/1PZoV1A

今天java.util.function包已经合并到ojluni master中(包括默认方法和lambdas的使用)。

编辑:这是 Android N 将支持 Java 8 的官方确认:http://developer.android.com/preview/j8-jack.html 流仍然丢失,但昨天已集成 java.util.Spliterator(s)。鉴于目前的速度,我预计我们将在 5 月看到 Stream API。

【讨论】:

  • 刚刚合并java.util.stream包。
【解决方案2】:

可能重复:will android java support lambda expression in java 8?

在可能重复的问题中,kapep 回答了这个问题(阅读完整答案了解更多详情):

Android 不使用 Oracle 的 Java SE 版本,它基于 Apache Harmony 项目的一部分,因此它甚至不支持 Java 7。Harmony 不再积极开发,也不支持 1.7。

所以我认为你可以忘记用于 Android 开发的 Oracle Java 版本的新功能并遵循 Android API(不是 Oracle 的 API)。

【讨论】:

  • Android 在 API 级别 19 中支持 Java 7。请参阅 here
  • 请阅读完整答案(如我所写)以了解我自己的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-07
  • 2018-09-05
  • 2015-08-09
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多