2016-03-15 60 views
12

我更新到最新的Android N sdk。我唯一不明白的是爲什麼我無法將java.time導入我的代碼中?我認爲Java8可以通過Android N獲得。那麼Google爲什麼不添加java.time包?Android N Java8 java.time

+0

只是等待是一個選項:jack現在已被棄用,並且java8 API將很快得到直接支持:https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html – ccpizza

+0

@ccpizza它們不支持Android的Java 8的所有功能。 –

+0

許多java.time功能都被移植到[* ThreeTen-Backport *](http://www.threeten.org/threetenbp/)項目中的Java 6和7中。在[* ThreeTenABP *](https://stackoverflow.com/q/36000997/642706)項目中進一步適用於Android;請參閱[*如何使用... *](https://stackoverflow.com/q/38922754/642706)。 –

回答

18

的Android N不支持Java的所有功能8. 以下功能僅支持:

  • 默認和靜態接口方法
  • lambda表達式
  • 重複標註

反思和語言相關的API:

  • java.lang.FunctionalInterface
  • java.lang.annotation.Repeatable
  • java.lang.reflect.Method.isDefault()

與思考與可重複的註釋相關聯的API,如 AnnotatedElement.getAnnotationsByType(Class)

實用程序的API:

  • java.util.function

欲瞭解更多信息查看以下鏈接:http://developer.android.com/preview/j8-jack.html

+4

感謝您的提綱。我想我們唯一的選擇Java的時間API是https://github.com/JakeWharton/ThreeTenABP –

+1

@Igor權利,直到穩定版本的Android-N將釋放。希望在穩定版本中他們會支持 –

+0

好吧,如果他們還沒有添加Time api,那麼他們可能不會在Android N中。否則,我不知道Google如何做出決定以包含或省略某些apis ... –