android中Lambda表达式写法

来源:互联网 发布:js传值到html 编辑:程序博客网 时间:2024/05/22 10:39

java 8 中引入了一些有特色的功能,Lambda表达式是目前唯一可以兼容到低版本Android2.3的,所以学习下,可以子啊项目中写写更方便的写法。

首先需要在build中配置:

android {    compileSdkVersion 25    buildToolsVersion "26.0.1"    defaultConfig {        applicationId "com.yuanli.myapplication"        minSdkVersion 15        targetSdkVersion 25        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"        //Lambda表达式需要        jackOptions.enabled = true    }    //Lambda表达式需要    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }}

使用

  1. 凡是只有一个待实现方法的接口,都可以使用Lambda表达式的写法。

线程写法:

    //第一种    class ThreadOne extends Thread {        @Override        public void run() {            //处理逻辑        }    }    。。。。。。。。。。。。。。。。    new Thread(()->{         //处理逻辑      }).start();================================================    //第二种    class ThreadTwo implements Runnable {        @Override        public void run() {            //处理逻辑        }    }    。。。。。。。。。。。。。。。。    Runnable runnable=()->{         //处理逻辑     };
  1. java可以根据上下文自动判断出Lambda表达式中参数类型
    //自定义接口写法    public interface MyListenner {        String doSomething(String a, int b);    }    //接受MyListenner参数的方法    public void Hello(MyListenner myListenner) {        String a = "Hello Lambda";        int b = 1024;        String result = myListenner.doSomething(a, b);        Log.i(TAG, "Hello: " + result);    }    。。。。。。。。。。。。。。。。。。。    Hello((a, b) -> {      String result = a + b;      return result;    });    //接口的匿名实现方法    MyListenner myListenner = (a, b) -> {        String result = a + b;        return result;    };
  1. 点击事件写法
        getView().setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {            }        });。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。        getView().setOnClickListener(v -> {        });
原创粉丝点击