我想创建扩展方法,仅当引用不为空时才会执行方法:
fun WeakReference<T>.safe( body : T.() -> Unit) {
this.get()?.body()
}
使用示例:
mTimerView.safe({startTimer(time)})
// OR
mTimerView.safe { startTimer(time) }
而不是:
mTimerView.get()?.stopTimer()
我做错了什么,因为我得到:“未解析的引用:T”?
或者也许有更简单的方法可以在没有扩展方法的情况下做到这一点?
最佳答案
我找到了答案:
fun <T> WeakReference<T>.safe( body : T.() -> Unit) {
this.get()?.body()
}
关于extension-methods - WeakReference的扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33854765/