Android Stdio中使用lambda

来源:互联网 发布:unity3d 2d游戏 编辑:程序博客网 时间:2024/05/19 19:14

一、前言

Android Stdio默认情况下,即使你使用的是jdk8也会报错,要是想在as中使用lambda,必须借用一个插件retrolambda。该插件将java 8中的lambda表达式特性兼容到java 5

二、安装插件

第一步、在项目的根目录下的build.gradle中加入如下代码

classpath 'me.tatarka:gradle-retrolambda:3.2.0'

整个文件内容为:

// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:2.2.0'        classpath 'me.tatarka:gradle-retrolambda:3.2.0'        // NOTE: Do not place your application dependencies here; they belong        // in the individual module build.gradle files    }}allprojects {    repositories {        jcenter()    }}task clean(type: Delete) {    delete rootProject.buildDir}

第二步、在modu目录下的build.gradle中使用插件,代码如下

apply plugin: 'me.tatarka.retrolambda'

接着在android节点下加入

compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }

这样,我们就可以在as中使用lambda了。

三、简单使用

rx中使用lambda最能体会其好处了。

代码如下:

 Observable.just("Hello, map!")              .map(new Func1<String, Object>() {                  @Override                  public Object call(String s) {                      return s + "--by liwen";                  }              })              .subscribe(s-> System.out.println(s));
0 0
原创粉丝点击