Google 宣布废弃 LiveData.observe 方法

Google 在 Kotlin 1.4 版本后废弃了 LiveData.observe 扩展方法,转而支持 SAM conversions for Kotlin interfaces,以简化代码并提高可读性。在 Kotlin 1.4 之前,LiveData.observe 的使用较为复杂,Google 添加了扩展方法以简化代码。随着 Kotlin 1.4 的新特性,这些扩展方法变得多余。LiveData.observe 的新增与废弃主要涉及函数式接口和 SAM 转换的概念,开发者需要根据新版本进行相应的代码调整。
摘要由CSDN通过智能技术生成

原文作者:DHL
原文链接:掘金

本篇文章作为技术动态了解即可,废弃 LiveData.observe() 扩展方法,已经不是什么新的新闻了,在很久以前,Google 废弃掉这个方法的时候,第一时间我在 朋友圈掘金沸点 发过一个消息,如下图所示。

通过这篇文章你将学习到以下内容:

  • 为什么增加 LiveData.observe() 扩展方法?
  • 既然增加了,为什么有要废弃 LiveData.observe() 扩展方法?
  • Kotlin 1.4 语法的特性
    • 什么是函数式(SAM)接口?
    • 什么是 SAM 转换?

为什么废弃 LiveData.observe 扩展方法

我们先来看看官方是如何解释,如下图所示:

在 Kotlin 1.4 上本身能够将默认的 observe() 方法转换为 lambda 语法,以前只有在使用 Kotlin 扩展时才可用。因此将 LiveData.observe() 扩展方法废弃掉了。

在 Kotlin 1.4 之前 LiveData.observe() 写法如下所示。

liveData.observe(this, Observer<String> {
    // ......
})
复制代码

但是这种写法有点复杂,因此 Google 在 lifecycle-livedata-ktx 库中添加了扩展方法,使代码更简洁,可读性更强。

liveData.observe(this){
    // ......
}
复制代码

在 Kotlin 1.4 时,增加了一个新的特性 SAM conversions for Kotlin interfaces ,支持将 SAM(单一抽象方法)接口,转换成 lambda 表达式,因此废弃了 LiveData.observe() 扩展方法。所以升级 lifecycle-livedata-ktx 库到最新版本,将会出现如下提示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值