我知道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
Android不使用Oracle的Java SE版本,它基于ApacheHarmony项目的一部分因此它甚至不支持Java7。不再积极开发Harmony,也不支持1.7。
除非Google决定将Harmony和Android SDK升级到更新的Java版本,否则Android中将不会有Java 7或Java 8功能-
即使新功能只是语法上的。他们可以使用 OpenJDK之
类的替代实现,尽管我不知道有什么计划。有人认为,由于Google和Oracle之间的诉讼,不太可能使用OpenJDK。
自编写此答案以来 ,Java7的_一些_
功能最为显着:菱形运算符,多捕获,字符串切换以及Android
N中的lambda表达式等 Java8功能也已在Android中实现。(感谢Ross和Stefan在评论中提到它)。
Google必须自己努力实现这些功能,而且似乎主要是为了获得更多受欢迎的功能。
1 Java8 Lambda表达式的介绍 Lambda表达式是Java8中包含的一项新的重要功能。它提供了一种简洁明了的方式来使用表达式表示一个方法接口。在Collection集合中非常有用。它有助于集合元素的迭代,过滤和从集合中提取数据。 Lambda表达式用于提供具有功能接口的接口的实现。它节省了大量代码。在使用Lambda表达式的情况下,我们无需再次定义用于提供实现的方法。我们只编写实现代码
Android Studio的正式版2已经在2天前发布了。 这个版本支持Java8吗?
问题内容: 我使用Maven构建我的项目。 我有以下配置: D:\ freelance \ polyndrom> mvn -verion Apache Maven 3.2.3(33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-12T00:58:1 0 + 04:00)Maven主页:C:\ Program Files \ apache \ apac
问题内容: 我有一个使用Spark的Java类。我需要从JavaRDD过滤出标头。这就是我要这样做的方式。 但是,此代码无法编译。IntelliJ IDE表示“此语言级别不支持Lambda表达式”。 问题答案: 您可以在Java 7上使用lambda,但涉及到一点点- 您必须使用Retrolambda之类的东西。 同样,您也可以在没有lambda的情况下执行相同的操作。Lambda可以通过匿名类轻
如果我更改了方法的名称,它会进行编译,但它不会重写toString,因此print方法不会打印预期的内容。 这是试图定义一个日志子系统,该子系统仅在需要时(当它真的要打印时)对lambda求值,但与非lambda参数兼容。我知道其他的方法来实现它,但我想知道为什么我不能这样做,如果有一个变通办法或我做错了什么,
我在Eclipse中打开了maven项目。但当我做清洁和安装,我得到以上的错误。 我将构建路径改为使用SE1.8,我的编译器也配置为使用1.8。您可以在下面的屏幕截图中看到这一点。 我在project explorer中也看到了小红叉。你可以在下面的图片中看到这一点。 我不确定为什么maven在Eclipse中配置为使用1.8时使用SE1.7。