2016-03-15 14 views
12

Tôi đã cập nhật lên SDK Android N mới nhất. Điều duy nhất tôi không hiểu là tại sao tôi không thể nhập java.time vào mã của tôi? Tôi nghĩ Java8 có sẵn thông qua Android N. Vậy tại sao Google không thêm gói java.time?Android N Java8 java.time

+0

chỉ cần chờ đợi là một tùy chọn: jack hiện không được chấp nhận và java8 API sẽ sớm được hỗ trợ trực tiếp: https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html – ccpizza

+0

@ccpizza Họ không hỗ trợ tất cả các tính năng của Java 8 cho Android. –

+0

Phần lớn chức năng java.time được chuyển sang Java 6 & 7 trong dự án [* ThreeTen-Backport *] (http://www.threeten.org/threetenbp/). Điều chỉnh thêm cho Android trong dự án [* ThreeTenABP *] (https://stackoverflow.com/q/36000997/642706); xem [* Cách sử dụng… *] (https://stackoverflow.com/q/38922754/642706). –

Trả lời

18

Android N không hỗ trợ tất cả các tính năng của Java 8. tính năng sau chỉ được hỗ trợ:

  • mặc định và phương thức giao diện tĩnh
  • Lambda biểu thức
  • chú thích lặp

API phản ánh và ngôn ngữ có liên quan đến:

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

và Reflection API liên quan đến chú thích lặp lại, chẳng hạn như AnnotatedElement.getAnnotationsByType(Class)

Utility API:

  • java.util.function

Để biết thêm thông kiểm tra các liên kết sau: http://developer.android.com/preview/j8-jack.html

+4

Cảm ơn bạn đã phác thảo. Tôi đoán tùy chọn duy nhất của chúng tôi cho Java 8 Thời gian api là https://github.com/JakeWharton/ThreeTenABP –

+1

@Igor ngay cho đến khi phiên bản ổn định của android-n sẽ phát hành. hy vọng trong phiên bản ổn định, họ sẽ hỗ trợ –

+0

Vâng, nếu họ không thêm api thời gian, thì có lẽ họ sẽ không ở Android N. Nếu không, tôi không biết làm thế nào Google đưa ra quyết định để bao gồm hoặc bỏ một số apis ... –

Các vấn đề liên quan