繁体   English   中英

Kotlin function 覆盖 null 检查

[英]Kotlin function override null check

我尝试获取用户的 lastLocation 并实现了这样的方法。

getLocationClient()?.lastLocation?.addOnSuccessListener(object :
               OnSuccessListener<Location> {
           override fun onSuccess(loc: Location) {
               if (loc == null) return
              }
       })

但是当我没有在 onSuccess 方法中将 null 安全添加到参数 Location 时,当 Location 参数为 null 时会导致一些崩溃。

当我将 null 安全添加到下图中的参数时,它不会覆盖该方法。 我能够用 null 安全覆盖此方法,但我猜有些改变。

在此处输入图像描述

我怎么解决这个问题?

OnSuccessListener 的类型参数也需要可以为空,即OnSuccessListener<Location?>而不是OnSuccessListener<Location>

getLocationClient()?.lastLocation?.addOnSuccessListener(object :
               OnSuccessListener<Location?> {
           override fun onSuccess(loc: Location?) {
               if (loc == null) return
              }
       })

顺便说一句,您还可以使用SAM语法以更短的方式来做同样的事情:

getLocationClient()?.lastLocation?.addOnSuccessListener { loc: Location? ->
    if (loc == null) return
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM