AndroidStudio下使用Lambda表达式

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 central
repositories {
  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
    }
    ...
}

你可能感兴趣的:(Android开发系列)