我想知道如果我可以在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