文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用 Lambda 取代 Android 中的匿名类

2022-06-06 07:34

关注

Lambda是第十一个希腊字母,大写Λ,小写λ,额,跑题了…Lambda表达式 是Java8的新特性之一:

Lambda表达式 函数式接口 流API 默认方法 新的Date Time API

Lambda表达式 取代了匿名类 ,取消了模板,允许用函数式风格编写代码。

由于最近接触了RxJava,遇到了Lambda,立马就喜欢上了~所以就学习了一下.

本文主要介绍一下Lambda在Android中替代匿名类的部分使用场景.

在Android中使用Lambda

gradle-retrolambda

A gradle plugin for getting java lambda support in java 6, 7 and android

在Android中使用我们需要使用这个插件,按照配置配置完就行.

实战使用

由于Lambda 可以取代匿名类,所以我们先来挑几个匿名类练练手.

这里先简单的提及一下Lambda的语法:() -> {}咋一看可能觉得这个什么鬼啊?看不懂啊!

不急,看几个例子先~

设置监听事件

Android中我们设置监听一般这么写:


mFab.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    doSomething();
   }
  });

这么写AS会提示说匿名类new View.OnClickListener()能被Lambda代替:

提示

那么用Lambda可以如何写呢?

mFab.setOnClickListener(v->doSomething());

看到了么?

整个匿名内部类被v->doSomething()给代替了.

是不是非常简单?

Ps: 本例子中的`v`代表onClick传递的参数v,参数不能省略,但是可以随意命名.

实现Runnable

在Android中我们起个线程一般这么写:


new Thread(new Runnable() {
   @Override
   public void run() {
    doSomething();
   }
  }).start();

而使用Lambda表达式的话可以这么写:

new Thread(() -> doSomething()).start();

另外实例化Runnable成员变量也可以这么写:

Runnable runnable = ()->doSomething();

看完这两个例子是否对Lambda感兴趣了呢?后续我还会继续学习,有兴趣的请继续关注~

您可能感兴趣的文章:Kotlin基础教程之伴生对象,getter,setter,内部,局部,匿名类,可变参数java 中使用匿名类直接new接口详解及实例代码Java中匿名类的两种实现方式java 内部类(匿名类,匿名对象,静态内部类)详解及实例PHP7匿名类用法分析全面了解Java中的内部类和匿名类深入讲解C#编程中嵌套类型和匿名类型的定义与使用详细解读C++编程中的匿名类类型和位域ASP.NET中实现根据匿名类、datatable、sql生成实体类Java通过匿名类来实现回调函数实例总结


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯