Java 8,我安装了新的Android Studio 3.0。
添加代码:
List<String> myList = Arrays.asList("a1", "a2", "b1", "c2", "c1");
myList
.stream()
.filter(s -> s.startsWith("c"))
.map(String::toUpperCase)
.sorted()
.forEach(System.out::println);
但是我得到了编译错误:
Call requires API level 24 (current min is 15) java.util.stream.Collection
发布于 2017-11-13 06:04:59
虽然Android Studio3.0中有大量Java 1.8支持(lambdas、方法引用、默认接口方法),但并不是所有的Android API都支持1.8。特别是,在API 24之前不支持java.util.stream
。
参见开发人员文档:https://developer.android.com/studio/write/java8-support.html#supported_features
StreamSupport:https://github.com/streamsupport/streamsupport是获得后向Java1.8库(如java.util.stream
)的一个好库
发布于 2020-06-21 16:15:19
为了使用Streams和其他java 8 API而不需要最低API级别24,您需要执行以下操作:
类路径'com.android.tools.build:gradle:4.0.0
然后,
依赖项{ coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.6‘....}
compileOptions { //启用新语言API支持的标志coreLibraryDesugaringEnabled true targetCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8 }
享受Java 8 Streams和Time API :)
https://stackoverflow.com/questions/47042805
复制相似问题