[英]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.