您的位置:首页 > 其它

Lambda表达式小例子

2017-09-29 15:45 162 查看
资料来源《第一行代码》

定义

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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: