虽然网上已经有了很多详细的介绍了,但是笔者还是想自己亲自过一遍如何在Android Studio中配置Lamdba表达式。【注:此文章针对Android而言的】
举个例子:
我们不用Lambda表达式的时候,在Android中 点击事件是如下所示这样写的:
findViewById(R.id.btn_lambda).setOnClickListener(newView.OnClickListener() {
@Override
public voidonClick(Viewv) {
Log.e(TAG,"onClick: "+"点击");
}});
这种方式,清晰明了,就是代码量多了。也不失是一种好的写法。如果我们要减少代码量呢,该如何去写?很好 Java 8 的新特性就给我们一个大大的方便,Java 8 Lambda表达式 。
在Android Studio 中我们该如何去配置和使用,本篇就简单的介绍下Java 8 Lambda 表达式的配置与书写方式。要了解Java 8 Lambda 表达式的更多内容,自行google。请谅解!谢谢!
配置步骤:
1.既然是Java 8 的新特性,我们当然要下载JDK8的版本,安装JDK、配置环境变量就不用说了吧,笔者相信读者都是聪明的。
2.在Android Studio新建一个Android工程,
a . 在项目的build.gradle(Project)文件中添加
dependencies{
classpath'me.tatarka:gradle-retrolambda:3.5.0'
}
b . 然后在build.gradle(app)文件中的顶部添加
applyplugin:'com.android.application'
applyplugin:'me.tatarka.retrolambda'
android{
compileOptions{
sourceCompatibilityJavaVersion.VERSION_1_8
targetCompatibilityJavaVersion.VERSION_1_8
}
}
3. 添加一下混淆
在项目中的proguard-rules.pro 这个文件中添加如下
-dontwarn java.lang.invoke.*
然后sync now一下就可以使用了。
此时 控件的点击事件可以这样写:
findViewById(R.id.btn_lambda).setOnClickListener(
view -> {
Log.e(TAG,"onClick: "+"点击0000000000000000000000"+view);
});
看下效果
是不是代码量少了很多,但是对于不熟悉的读者来说,看起来是有点摸不着头脑,没关系,读者花上那么一点点时间去适应适应Java 8 Lamdba表达式 就习惯了。
读者可以自己试一下,应该不会出现什么问题吧!如有问题请指出,笔者知晓立即修正!谢谢!