我想知道我是否可以在Android开发中使用接口中的默认方法。 该功能包含在Java 8中,但我发现Android Java VM还不支持它。 有没有办法在Android开发中使用默认方法?如果没有,当此功能可用时,此功能是否有某种时间表?
答案 0 :(得分:6)
关于可用性:我认为我们会在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 Streams仍然缺失,但昨天已集成了java.util.Spliterator。鉴于目前的速度,我预计我们会在5月份看到Stream API。
答案 1 :(得分: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)。