通过脱糖获得 Java 8 及更高版本 API

Android Studio 现在支持使用多种 Java 8 及更高版本的 API,而无需为应用设置最低 API 级别。通过一个称为 API 脱糖的过程,DEX 编译器 (D8) 可让您在支持较低 Android 版本的应用中添加更多标准语言 API。

下面是一个可搜索的表格,显示了在 build.gradle 中将 coreLibraryDesugaring 依赖项设置为 com.android.tools:desugar_jdk_libs:1.1.8 时使用最新版 Android Gradle 插件时有哪些 Java 8 及更高版本的库可用(如需了解详情,请参阅 API 脱糖)。

软件包 +
类、
枚举
或接口
构造函数、
属性
和方法
备注
java.lang


 Iterable


  • public void forEach(Consumer action)
  • public java.util.Spliterator spliterator()

针对现有类提供的额外方法。

java.time
请参阅“自定义”部分<br

 Clock


  • protected Clock()
  • public boolean equals(Object obj)
  • public static Clock fixed(
     Instant fixedInstant, ZoneId zone)
  • public abstract ZoneId getZone()
  • public int hashCode()
  • public abstract Instant instant()
  • public long millis()
  • public static Clock offset(
     Clock baseClock, Duration offsetDuration)
  • public static Clock system(ZoneId zone)
  • public static Clock systemDefaultZone()
  • public static Clock systemUTC()
  • public static Clock tick(
     Clock baseClock, Duration tickDuration)
  • public static Clock tickMinutes(ZoneId zone)
  • public static Clock tickSeconds(ZoneId zone)
  • public abstract Clock withZone(ZoneId p0)

完全实现的类。

java.time
请参阅“自定义”部分<br

 DateTimeException


  • public DateTimeException(String message)
  • public DateTimeException(
     String message, Throwable cause)

完全实现的类。

java.time
请参阅“自定义”部分<br

 DayOfWeek


  • public static final DayOfWeek FRIDAY
  • public static final DayOfWeek MONDAY
  • public static final DayOfWeek SATURDAY
  • public static final DayOfWeek SUNDAY
  • public static final DayOfWeek THURSDAY
  • public static final DayOfWeek TUESDAY
  • public static final DayOfWeek WEDNESDAY
  • public Temporal adjustInto(Temporal temporal)
  • public static DayOfWeek from(
     TemporalAccessor temporal)
  • public int get(TemporalField field)
  • public String getDisplayName(
     TextStyle style, java.util.Locale locale)
  • public long getLong(TemporalField field)
  • public int getValue()
  • public boolean isSupported(TemporalField field)
  • public DayOfWeek minus(long days)
  • public static DayOfWeek of(int dayOfWeek)
  • public DayOfWeek plus(long days)
  • public Object query(TemporalQuery query)
  • public ValueRange range(TemporalField field)
  • public static DayOfWeek valueOf(String name)
  • public static DayOfWeek[] values()

完全实现的类。

java.time
请参阅“自定义”部分<br

 Duration


  • public static final Duration ZERO
  • public Duration abs()
  • public Temporal addTo(Temporal temporal)
  • public static Duration between(
     Temporal startInclusive, Temporal endExclusive)
  • public int compareTo(Duration otherDuration)
  • public Duration dividedBy(long divisor)
  • public boolean equals(Object otherDuration)
  • public static Duration from(TemporalAmount amount)
  • public long get(TemporalUnit unit)
  • public int getNano()
  • public long getSeconds()
  • public java.util.List getUnits()
  • public int hashCode()
  • public boolean isNegative()
  • public boolean isZero()
  • public Duration minus(
     long amountToSubtract, TemporalUnit unit)
  • public Duration minus(Duration duration)
  • public Duration minusDays(long daysToSubtract)
  • public Duration minusHours(long hoursToSubtract)
  • public Duration minusMillis(long millisToSubtract)
  • public Duration minusMinutes(long minutesToSubtract)
  • public Duration minusNanos(long nanosToSubtract)
  • public Duration minusSeconds(long secondsToSubtract)
  • public Duration multipliedBy(long multiplicand)
  • public Duration negated()
  • public static Duration of(
     long amount, TemporalUnit unit)
  • public static Duration ofDays(long days)
  • public static Duration ofHours(long hours)
  • public static Duration ofMillis(long millis)
  • public static Duration ofMinutes(long minutes)
  • public static Duration ofNanos(long nanos)
  • public static Duration ofSeconds(long seconds)
  • public static Duration ofSeconds(
     long seconds, long nanoAdjustment)
  • public static Duration parse(CharSequence text)
  • public Duration plus(
     long amountToAdd, TemporalUnit unit)
  • public Duration plus(Duration duration)
  • public Duration plusDays(long daysToAdd)
  • public Duration plusHours(long hoursToAdd)
  • public Duration plusMillis(long millisToAdd)
  • public Duration plusMinutes(long minutesToAdd)
  • public Duration plusNanos(long nanosToAdd)
  • public Duration plusSeconds(long secondsToAdd)
  • public Temporal subtractFrom(Temporal temporal)
  • public long toDays()
  • public long toHours()
  • public long toMillis()
  • public long toMinutes()
  • public long toNanos()
  • public String toString()
  • public Duration withNanos(int nanoOfSecond)
  • public Duration withSeconds(long seconds)

Android T 中的某些方法 (9) 不受支持。

java.time
请参阅“自定义”部分<br

 Instant


  • public static final Instant EPOCH
  • public static final Instant MAX
  • public static final Instant MIN
  • public Temporal adjustInto(Temporal temporal)
  • public OffsetDateTime atOffset(ZoneOffset offset)
  • public ZonedDateTime atZone(ZoneId zone)
  • public int compareTo(Instant otherInstant)
  • public boolean equals(Object otherInstant)
  • public static Instant from(
     TemporalAccessor temporal)
  • public int get(TemporalField field)
  • public long getEpochSecond()
  • public long getLong(TemporalField field)
  • public int getNano()
  • public int hashCode()
  • public boolean isAfter(Instant otherInstant)
  • public boolean isBefore(Instant otherInstant)
  • public boolean isSupported(TemporalField field)
  • public boolean isSupported(TemporalUnit unit)
  • public Instant minus(
     long amountToSubtract, TemporalUnit unit)
  • public Instant minus(
     TemporalAmount amountToSubtract)
  • public Instant minusMillis(long millisToSubtract)
  • public Instant minusNanos(long nanosToSubtract)
  • public Instant minusSeconds(long secondsToSubtract)
  • public static Instant now()
  • public static Instant now(Clock clock)
  • public static Instant ofEpochMilli(long epochMilli)
  • public static Instant ofEpochSecond(
     long epochSecond)
  • public static Instant ofEpochSecond(
     long epochSecond, long nanoAdjustment)
  • public static Instant parse(CharSequence text)
  • public Instant plus(
     long amountToAdd, TemporalUnit unit)
  • public Instant plus(TemporalAmount amountToAdd)
  • public Instant plusMillis(long millisToAdd)
  • public Instant plusNanos(long nanosToAdd)
  • public Instant plusSeconds(long secondsToAdd)
  • public Object query(TemporalQuery query)
  • public ValueRange range(TemporalField field)
  • public long toEpochMilli()
  • public String toString()
  • public Instant truncatedTo(TemporalUnit unit)
  • public long until(
     Temporal endExclusive, TemporalUnit unit)
  • public Instant with(TemporalAdjuster adjuster)
  • public Instant with(
     TemporalField field, long newValue)

完全实现的类。

java.time
请参阅“自定义”部分<br

 LocalDate


  • public static final LocalDate MAX
  • public static final LocalDate MIN
  • public Temporal adjustInto(Temporal temporal)
  • public LocalDateTime atStartOfDay()
  • public ZonedDateTime atStartOfDay(ZoneId zone)
  • public LocalDateTime atTime(int hour, int minute)
  • public LocalDateTime atTime(
     int hour, int minute, int second)
  • public LocalDateTime atTime(
      int hour,
      int minute,
      int second,
      int nanoOfSecond)
  • public LocalDateTime atTime(LocalTime time)
  • public OffsetDateTime atTime(OffsetTime time)
  • public int compareTo(ChronoLocalDate other)
  • public boolean equals(Object obj)
  • public String format(DateTimeFormatter formatter)
  • public static LocalDate from(
     TemporalAccessor temporal)
  • public int get(TemporalField field)
  • public IsoChronology getChronology()
  • public int getDayOfMonth()
  • public DayOfWeek getDayOfWeek()
  • public int getDayOfYear()
  • public IsoEra getEra()23
  • public long getLong(TemporalField field)
  • public Month getMonth()
  • public int getMonthValue()
  • public int getYear()
  • public int hashCode()
  • public boolean isAfter(ChronoLocalDate other)
  • public boolean isBefore(ChronoLocalDate other)
  • public boolean isEqual(ChronoLocalDate other)
  • public boolean isLeapYear()
  • public boolean isSupported(TemporalField field)
  • public boolean isSupported(TemporalUnit unit)
  • public int lengthOfMonth()
  • public int lengthOfYear()
  • public LocalDate minus(
     long amountToSubtract, TemporalUnit unit)
  • public LocalDate minus(
     TemporalAmount amountToSubtract)
  • public LocalDate minusDays(long daysToSubtract)
  • public LocalDate minusMonths(long monthsToSubtract)
  • public LocalDate minusWeeks(long weeksToSubtract)
  • public LocalDate minusYears(long yearsToSubtract)
  • public static LocalDate now()
  • public static LocalDate now(Clock clock)
  • public static LocalDate now(ZoneId zone)
  • public static LocalDate of(
     int year, int month, int dayOfMonth)
  • public static LocalDate of(
     int year, Month month, int dayOfMonth)
  • public static LocalDate ofEpochDay(long epochDay)
  • public static LocalDate ofYearDay(
     int year, int dayOfYear)
  • public static LocalDate parse(CharSequence text)
  • public static LocalDate parse(
     CharSequence text, DateTimeFormatter formatter)
  • public LocalDate plus(
     long amountToAdd, TemporalUnit unit)
  • public LocalDate plus(TemporalAmount amountToAdd)
  • public LocalDate plusDays(long daysToAdd)
  • public LocalDate plusMonths(long monthsToAdd)
  • public LocalDate plusWeeks(long weeksToAdd)
  • public LocalDate plusYears(long yearsToAdd)
  • public Object query(TemporalQuery query)
  • public ValueRange range(TemporalField field)
  • public long toEpochDay()
  • public String toString()
  • public long until(
     Temporal endExclusive, TemporalUnit unit)
  • public Period until(
     ChronoLocalDate endDateExclusive)
  • public LocalDate with(TemporalAdjuster adjuster)
  • public LocalDate with(
     TemporalField field, long newValue)
  • public LocalDate withDayOfMonth(int dayOfMonth)
  • public LocalDate withDayOfYear(int dayOfYear)
  • public LocalDate withMonth(int month)
  • public LocalDate withYear(int year)

2 不存在于 Android T 中(编译时可能无法解析)。
 3 并非在所有 minSDK 级别都受支持。

java.time
请参阅“自定义”部分<br

 LocalDateTime


  • public static final LocalDateTime MAX
  • public static final LocalDateTime MIN
  • public Temporal adjustInto(Temporal temporal)
  • public OffsetDateTime atOffset(ZoneOffset offset)
  • public ZonedDateTime atZone(ZoneId zone)
  • public int compareTo(ChronoLocalDateTime other)
  • public boolean equals(Object obj)
  • public String format(DateTimeFormatter formatter)
  • public static LocalDateTime from(
     TemporalAccessor temporal)
  • public int get(TemporalField field)
  • public int getDayOfMonth()
  • public DayOfWeek getDayOfWeek()
  • public int getDayOfYear()
  • public int getHour()
  • public long getLong(TemporalField field)
  • public int getMinute()