2016-03-15 26 views
12

Zaktualizowałem do najnowszej wersji Androida N sdk. Jedyne, czego nie rozumiem, to dlaczego nie mogę zaimportować java.time do mojego kodu? Myślałem, że Java8 jest dostępna przez Android N. Więc dlaczego Google nie dodał pakietu java.time?Android N Java8 java.time

+0

tylko czeka jest opcja: Jack jest teraz przestarzała i API Java wkrótce będzie obsługiwane bezpośrednio: https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html – ccpizza

+0

@ ccpizza Nie obsługują wszystkich funkcji Java 8 dla Androida. –

+0

Duża część funkcji java.time została przeniesiona z powrotem do Java 6 i 7 w projekcie [* ThreeTen-Backport *] (http://www.threeten.org/threetenbp/). Dalsze dostosowanie do systemu Android w projekcie [* ThreeTenABP *] (https://stackoverflow.com/q/36000997/642706); zobacz [* Jak korzystać ... *] (https://stackoverflow.com/q/38922754/642706). –

Odpowiedz

18

Android N nie obsługuje wszystkie funkcje Java 8. następujące funkcje są obsługiwane tylko:

  • domyślna i statyczne metody interfejsu
  • Lambda wyrażeń
  • powtarzalne adnotacje

Interfejsy API związane z odbiorem i językiem:

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

i odbicie API związanych z powtarzalnych opisów, jak AnnotatedElement.getAnnotationsByType(Class)

użytkowe API:

  • java.util.function

uzyskać więcej informacji sprawdź następujące łącze: http://developer.android.com/preview/j8-jack.html

+4

Dzięki za konspekt. Domyślam się, że nasza jedyna opcja dla Java 8 Time api to https://github.com/JakeWharton/ThreeTenABP –

+1

@Igor right until stabilna wersja Androida-n zostanie wydana. mam nadzieję, że w stabilnej wersji będą wspierać –

+0

Cóż, jeśli nie dodali jeszcze api Time, to prawdopodobnie nie będą działać w Androidzie N. W przeciwnym razie nie mam pojęcia, jak Google podejmuje decyzję o włączeniu lub opuszczeniu niektórych apis ... –