使用 Lambda 取代 Android 中的匿名类

 更新时间:2016年09月08日 09:08:26   作者:程序亦非猿  
本文主要介绍使用Lambda 取代 Android 中的匿名类的资料,这里这里了相关资料及简单示例代码帮助大家学习参考此部分的知识,有需要的小伙伴可以参考下

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

  1. Lambda表达式
  2. 函数式接口
  3. 流API
  4. 默认方法
  5. 新的Date
  6. 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感兴趣了呢?后续我还会继续学习,有兴趣的请继续关注~

相关文章

  • Android实战之Cocos游戏容器搭建

    Android实战之Cocos游戏容器搭建

    这篇文章主要介绍了Android实战之Cocos游戏容器搭建,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-06-06
  • Android CountDownTimer实现倒计时器

    Android CountDownTimer实现倒计时器

    这篇文章主要为大家详细介绍了Android CountDownTimer实现倒计时效果的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Android项目基本结构详解

    Android项目基本结构详解

    这篇文章主要为大家详细介绍了Android项目基本结构,从最基本的内容讲起,带你逐步进入用C#进行Android应用开发的乐园,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • android 放大镜ShapeDrawable妙用分享

    android 放大镜ShapeDrawable妙用分享

    android上想实现局部放大的效果,比如画面中加个放大镜的效果,发现ShapeDrawable是一个最好的选择。
    2013-06-06
  • Android Studio 3.x安装指南教程

    Android Studio 3.x安装指南教程

    这篇文章主要为大家详细介绍了Android Studio 3.x安装指南教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Android实现可输入数据的弹出框

    Android实现可输入数据的弹出框

    这篇文章主要为大家详细介绍了Android实现可输入数据的弹出框,文章提供了两种方式,示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • Android开发实现调节屏幕亮度功能

    Android开发实现调节屏幕亮度功能

    这篇文章主要介绍了Android开发实现调节屏幕亮度功能,涉及Android权限控制及屏幕亮度相关属性操作技巧,需要的朋友可以参考下
    2018-03-03
  • Android编程实现基于BitMap获得图片像素数据的方法

    Android编程实现基于BitMap获得图片像素数据的方法

    这篇文章主要介绍了Android编程实现基于BitMap获得图片像素数据的方法,对比分析了两种获取图片像素的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • Android so的热升级尝试

    Android so的热升级尝试

    这篇文章主要介绍了Android so的热升级尝试的相关知识,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-11-11
  • Android实现带页面切换的锁屏功能

    Android实现带页面切换的锁屏功能

    这篇文章主要为大家详细介绍了Android实现带页面切换的锁屏功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06

最新评论