2016-03-15 6 views
12

Ich habe auf den neuesten Android N SDK aktualisiert. Das einzige, was ich nicht verstehe, ist warum ich java.time nicht in meinen Code importieren kann? Ich dachte, dass Java8 über Android N verfügbar ist. Warum hat Google dann kein java.time Paket hinzugefügt?Android N Java8 java.time

+0

nur warten ist eine Option: jack ist jetzt veraltet und java8 API wird bald direkt unterstützt werden: https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html – ccpizza

+0

@ccpizza Sie unterstützen nicht alle Funktionen von Java 8 für Android. –

+0

Ein großer Teil der java.time-Funktionalität wird im Projekt [* ThreeTen-Backport *] (http://www.threeten.org/threetenbp/) zurück zu Java 6 & 7 portiert. Weiter angepasst für Android im [* ThreeTenABP *] (https://stackoverflow.com/q/36000997/642706) Projekt; siehe [* How to use ... *] (https://stackoverflow.com/q/38922754/642706). –

Antwort

18

Android N unterstützt nicht alle Funktionen von Java 8. Folgende Funktionen werden nur unterstützt:

  • Standard und statische Schnittstelle Methoden
  • Lambda-Ausdrücke
  • wiederholbar Anmerkungen

Reflection und sprachbezogene APIs:

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

und Reflection APIs mit wiederholbaren Annotationen verbunden sind, wie AnnotatedElement.getAnnotationsByType(Class)

Utility-APIs:

  • java.util.function

Weitere Informationen unter folgendem Link einsehen: http://developer.android.com/preview/j8-jack.html

+4

Danke für die Gliederung. Ich denke, unsere einzige Option für Java 8 Time API ist https://github.com/JakeWharton/ThreeTenABP –

+1

@Igor rechts bis zur stabilen Version von Android-n wird freigegeben. hoffe in stabiler Version werden sie unterstützen –

+0

Nun, wenn sie noch nicht die Zeit API hinzugefügt haben, dann werden sie wahrscheinlich nicht in Android N. Sonst habe ich keine Ahnung, wie Google entscheidet, bestimmte Apis einzuschließen oder wegzulassen ... –