AndroidStudio下使用Lambda表达式

来源:互联网 发布:优化企业家发展环境 编辑:程序博客网 时间:2024/06/05 04:24

AndroidStudio下使用Lambda

Lambda在Java8得到支持,那么在开发Android项目时如何设置支持Lamdba表达式呢?

Google官方方式

使用Java8时,需要新的Jack工具链

  • javac工具链:
javac (.java --> .class) --> dx(.class --> .dex)
  • Jack工具链:
Jack (.java --> .jack  --> .dex)

设置支持Java8

在Module级别的build.gradle中添加相关项

android {  ...  defaultConfig {    ...    //添加jack支持    jackOptions {      enabled true    }  }  //设置使用Java8  compileOptions {    sourceCompatibility JavaVersion.VERSION_1_8    targetCompatibility JavaVersion.VERSION_1_8  }}

使用retrolambda插件

1.在项目级别的build.gradle中添加retrolambda支持

buildscript {  repositories {     mavenCentral()  }  dependencies {     classpath 'me.tatarka:gradle-retrolambda:3.2.5'  }}// Required because retrolambda is on maven centralrepositories {  mavenCentral()}

2.在module级别的build.gradle中添加retrolambda插件,并且声明支持Java8

apply plugin: 'com.android.application'//需要添加的retrolambda支持插件apply plugin: 'me.tatarka.retrolambda'android {    ...    defaultConfig {    ...         }    //注意 此处未开启Jack方式    //需要添加的Java8支持    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }    ...}