Lambda表达式小例子

来源:互联网 发布:手机掌上贵金属软件 编辑:程序博客网 时间:2024/05/16 07:36
  • 资料来源《第一行代码》

定义

  • Lambda表达式本质上是一种匿名方法,没有方法名,没有访问修饰符,没有返回值类型。

使用准备

  • 先要在module的build.gradle中配置
android {    compileSdkVersion 26    buildToolsVersion "26.0.0"    defaultConfig {        applicationId "com.wj.materialdemo"        minSdkVersion 21        targetSdkVersion 26        versionCode 1        versionName "1.0"        jackOptions.enabled = true        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }compileOptions{    sourceCompatibility org.gradle.api.JavaVersion.VERSION_1_8    targetCompatibility org.gradle.api.JavaVersion.VERSION_1_8}    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }}

使用场景

  • 符合接口中,只有一个待实现方法这个规则,就可以使用Lamdba表达式来编写
private void testLamdba() {    //创建一个线程    new Thread(() -> {    }).start();    //创建一个接口    Runnable runnable = () -> {    };    //创建一个自定义接口    MyListener listener = (String a, int b) -> {        return a + b;    };    //创建一个自定义接口,简化版本    MyListener listener2 = (a, b) -> {        return a + b;    };    //调用自定义方法    hello((a, b) -> {        return a + b;    });//设置点击事件Button button = new Button(this);button.setOnClickListener((v) -> {});//设置点击事件 简化版本 如果只有一个参数,可以去掉括号Button button2 = new Button(this);button2.setOnClickListener(v -> {});}private void hello(MyListener listener) {    String a = "hello Lambda";    int b = 1024;    String result = listener.doSomeThing(a, b);}interface MyListener {    String doSomeThing(String a, int b);}
原创粉丝点击