Loading

在低版本Android中使用Java Stream功能

一直使用Java8的Stream功能来简化代码,比如如下的操作:

double num = list.stream().filter(t -> !StringUtils.isEmpty(t.字段名)).count();

在Android 11等高版本中没有问题,但运行在Android 6中就报错了,提示:No interface method stream()...

很显然低版本Android并不支持Java Stream功能,为了让其支持该功能,需要做一些额外的设置,官方称为“脱糖”。链接:

 
在应用模块的build.gradle中添加如下代码同步编译即可:
android {
    defaultConfig {
        // Required when setting minSdkVersion to 20 or lower
        multiDexEnabled true
    }

    compileOptions {
        // Flag to enable support for the new language APIs
        coreLibraryDesugaringEnabled true
        // Sets Java compatibility to Java 8
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.4'
}
 

 

posted @ 2022-04-24 09:00  guwei4037  阅读(833)  评论(0编辑  收藏  举报