参考:https://blog.csdn.net/linglongxin24/article/details/53888504

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0325/4078.html

1.配置Android studio

在module 的build.gradle中配置如下:

jackOptions{

enabled true

}

compileOptions{

sourceCompatibility JavaVersion.VERSION_1_8

targetCompatibility JavaVersion.VERSION_1_8

}

Lambda表达式在Android 中的应用

2.使用

第一种方式,无参数+语句(代码块):适用于匿名内部类中方法无参数的情况

Lambda表达式在Android 中的应用

第二种方式,有参数+语句:适用于匿名内部类中方法只有一个参数的情况
Lambda表达式在Android 中的应用

Lambda表达式在Android 中的应用

第三种方式,有参数+代码块:适用于匿名内部类中方法不止一个参数的情况

Lambda表达式在Android 中的应用

  • 什麼都不做
    () -> {}

  • 单行不需要有返回值,单行可省略{}
    (x, y) -> x + y;

  • 单行需要有返回值
    (x, y) -> x + y//注意没有分号结尾

    
    
    1. Observable.just("Hello", "RxJava")
    2.           .map(new Func1<String, String>() {
    3.                     @Override
    4.                     public String call(String s) {
    5.                         return s.toUpperCase();
    6.                     }
    7.           });

使用 lambda


  1. Observable.just("Hello", "RxJava")
  2.           .map(-> s.toUpperCase());
  • 多行不需要有返回值
    (x, y) ->{
    x x;
    y y;
    }

  • 多行需要有返回值
    (x, y) ->{
    x x;
    y y;
    return x + y;
    }


相关文章: