我想知道如果我可以在Android开发接口中使用默认方法。 该功能包含在Java 8中,但我发现Android Java VM尚不支持它。 有没有办法在Android开发中使用默认方法?如果没有,当这个功能可用时,这个功能是否有某种时间轴?当在Android中支持默认方法(Java 8)?
回答
关于可用性:我想我们会在Android N中看到默认方法。在AOSP上已经有很多与新的Jack编译器的默认方法相关的测试。请参阅http://bit.ly/1PZoV1A
而今天java.util.function包已合并到ojluni master(包括默认方法和lambda表达式的使用)。
编辑:这是Android N将支持Java 8的官方确认:http://developer.android.com/preview/j8-jack.html 流仍然丢失,但java.util.Spliterator(s)已于昨天被整合。鉴于目前的速度,我预计我们会在五月份看到Stream API。
刚刚合并了java.util.stream包。 – 2016-03-18 13:13:23
可能重复:will android java support lambda expression in java 8?
在可能重复的问题,kapep回答了这个(阅读更多详细信息的完整答案):
Android不使用Oracle的Java SE版本,它基于Apache Harmony项目的一部分,所以它甚至不支持Java 7. Harmony不再支持并且不支持1.7。
因此,我认为您可以忘记Oracle Java版本的Android开发新功能,并遵循Android API(不是Oracle版本)。
Android支持API级别19中的Java 7.请参阅[这里](http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Using-sourceCompatibility-1.7)。 – 2014-10-03 07:55:34
请阅读完整的答案(正如我写的)来理解我自己的答案。 – mithrop 2014-10-03 08:22:12
- 1. Android和Java 8的默认方法
- 2. java中的默认方法8
- 3. Android:默认支持Gzip/Http?
- 4. 的Java 8默认方法继承
- 5. Java 8接口的默认方法
- 6. 默认支持Java 6中的xinclude?
- 7. 默认Omnicomplete支持
- 8. java 7接口中的默认方法的替代方案(仅在Java 8中)
- 9. 默认java支持哪个数据库
- 10. Java是否支持默认参数值?
- 11. Eclipse + Java 8支持?
- 12. 默认支持android系统多屏
- 13. GWT中的Java 8支持
- 14. JFace数据绑定不支持默认方法
- 15. 为什么Android Studio 3.0不支持默认和静态接口方法
- 16. Java 8中的方法引用:是否支持重载?
- 17. IE 8不支持的foreach方法
- 18. 在Java 8之前的版本中使用SPI中的默认接口方法
- 19. 接口隔离原则和默认方法的Java 8
- 20. 如何反射地调用Java 8默认方法
- 21. 杰克逊@JsonIgnore继承的Java 8默认方法
- 22. 的Java 8 - 默认的方法 - 关注遗留代码
- 23. Java 8 - 用于等号和哈希码的默认方法
- 24. 依赖注入为java 8默认的接口方法
- 25. ArrayStoreException当使用java中的Arrays.fill方法分配默认值
- 26. JAXB是否支持默认模式值?
- 27. 为什么java 8使用默认方法而不是扩展方法
- 28. Java要求执行默认方法
- 29. 支持DPI和默认字体更改
- 30. 坚持UTF-8作为默认编码
'Android Java VM还不支持它。这个陈述本身回答你的问题。它说**没有**。 – 2014-10-03 07:27:28
@ FrankN.Stein我还试图了解这些是否是这些功能的一些时间表。我已经完善了这个问题。 – 2014-10-03 09:03:08
同样,答案似乎是**否**。 – 2014-10-03 09:05:09