57

我知道 dalvik vm 中的“java”在 API 和体系结构等方面与 Java se 不同。但语法一直是相同的。(如果我错了请纠正我)

现在java 8中对lambda表达式的支持即将发布,android java会跟进吗?google 或 aosp 是否承诺让 dalvik 与 java se 保持一致?

更新:现在与 Android 4.4 Kit Kat (API 19) 一样,Java 7 语法已得到正式支持。来源 android.com

4

1 回答 1

33

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

除非 Google 决定将 Harmony 和 Android SDK 升级到更新的 Java 版本,否则 Android 中不会有任何 Java 7 或 Java 8 功能——即使新功能只是语法上的。他们可以使用像OpenJDK这样的替代实现,尽管我不知道这方面的任何计划。由于谷歌和甲骨文之间的诉讼,一些人认为使用 OpenJDK 的可能性不大。


Java 7 的一些特性,最值得注意的是:菱形运算符、多捕获、字符串切换以及 Android N 中的一些 Java 8 特性,如 lambda 表达式,自编写此答案以来已在 Android 中实现。(感谢罗斯斯特凡在评论中提到它)。

谷歌必须通过自己的努力来实现这些功能,而且似乎选择这样做主要是为了更受欢迎的功能。

于 2013-02-11T19:45:15.627 回答