Android Studio 中使用 Lambda表达式
来源:互联网 发布:windows网络命令 编辑:程序博客网 时间:2024/05/16 01:23
Lambda:是Java 8 的重要更新,Lambda 表达式支持将代码块作为方法参数,允许使用更简洁的代码来创建只有一个抽象方法的接口的实例。在我们Android开发中经常会给View添加监听事件,如下代码:
findViewById(R.id.iv_refresh).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(this, "onClick", Toast.LENGTH_SHORT).show(); } });
接下来让我们看看用 Lambda 表达式的写出来的代码:
findViewById(R.id.iv_refresh).setOnClickListener( v -> Toast.makeText(this, "onClick", Toast.LENGTH_SHORT).show());
这样一比较下来是不是感觉代码看起来清爽多了,还是很强大的。
根据上面的语法,我们可以看出 Lambda 的主要作用就是代替匿名内部类的繁琐语法,并且是以三部分组成:
形参列表 : 形参列表允许省略形参类型。如果形参列表中只有一个参数,甚至连形参列表括号也可以省略。
箭头 (->):必须通过英文的中划线和大于符号组成。
代码块:如果代码块只包含一条语句, Lambda 表达式允许省略代码块的花括号,那么这条语句就不要用花括号表示语句结束。 Lambda 代码块只有一条 retrun语句,甚至可以省略 return 的关键字。Lambda 表达式需要返回值,而他的代码块中仅有一条省略了 return 的语句,Lambda 会自动返回这条语句的值。
我们知道Andoroid中最高只能使用JDK 7,而Lambda是JDK 8后的新特性,所以是没法通过编译的;但是庆幸的是有大神为我们编写了 Gradle Retrolambda Plugin,我们clone过来使用就OK了。
下面给出地址
作者Github下载地址
Gradle Plugin Jar包下载地址
下面我们开始在Android Studio中添加配置,以 3.2.5版本为例:
将 Jar 包复制到Module的libs目录下,并且关联Jar包。
接下来我们在 Project 的 build.gradle -> dependencies 节点中添加依赖。
dependencies { classpath 'me.tatarka:gradle-retrolambda:3.2.5'}
接着我们在 Mudule 的 build.gradle 中 空白处添加 plugin 。
apply plugin: 'com.android.application' //这个默认就有的apply plugin: 'me.tatarka.retrolambda'
最后我们接着在 Mudule 的 build.gradle -> android 节点中添加JDK 版本。
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8}
这样就配置好了 Lambda ,最后 Rebuild 一下 Project 就可以使用了。
- Android Studio中使用Lambda表达式
- android studio 中使用lambda表达式
- 在Android Studio中使用Lambda表达式
- 在Android Studio中使用Lambda表达式
- Android Studio 中使用 Lambda表达式
- Android Studio中使用Lambda表达式
- Android Studio中使用Lambda表达式
- android studio 中使用lambda表达式
- Android Studio中使用lambda表达式
- 在Android Studio中使用Lambda表达式
- Android Studio中使用lambda表达式
- Android Studio中使用Lambda表达式
- 在Android Studio中使用Lambda表达式
- Android Studio中使用Lambda表达式
- Android studio使用lambda表达式
- Android Studio 使用Lambda表达式
- Android Studio 使用 Lambda表达式
- Android Studio使用Lambda表达式
- Android本地数据库查询电话号码归属地规则
- STL之vector容器详解
- 函数中局部变量的返回
- 修改static中成员变量的值
- Doxygen自动文档生成工具在Eclipse中的集成及使用举例
- Android Studio 中使用 Lambda表达式
- iOS开发——布局框架Masonry的介绍与使用
- 文章标题
- 理解基本的模拟——理想运算放大器
- fiddler使用详解
- Android Studio使用技巧---良心推荐的实用功能
- 创建SQL数据库并与C++Builder连接
- Java内存分配策略
- 怎么用c语言实现读取一个txt文件里的数据 要按行读出来