我嘗試獲取用戶的 lastLocation 并實作了這樣的方法。
getLocationClient()?.lastLocation?.addOnSuccessListener(object :
OnSuccessListener<Location> {
override fun onSuccess(loc: Location) {
if (loc == null) return
}
})
但是當我沒有在 onSuccess 方法中為引數 Location 添加空安全性時,當 Location 引數為空時會導致一些崩潰。
當我如下圖所示為引數添加空安全性時,它不會覆寫該方法。我能夠以空安全性覆寫此方法,但我猜有些改變。

我怎么解決這個問題 ?
uj5u.com熱心網友回復:
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
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/409900.html
標籤:
上一篇:具有所需介面的通用列舉型別引數
