WeakReference 上的扩展方法
Extension method on WeakReference
我想创建仅当引用不为空时才执行方法的扩展方法:
fun WeakReference<T>.safe( body : T.() -> Unit) {
this.get()?.body()
}
用法示例:
mTimerView.safe({startTimer(time)})
// OR
mTimerView.safe { startTimer(time) }
而不是:
mTimerView.get()?.stopTimer()
我做错了什么因为我得到:"Unresolved reference: T" ?
或者也许有更简单的方法,无需扩展方法?
我找到了答案:
fun <T> WeakReference<T>.safe( body : T.() -> Unit) {
this.get()?.body()
}
我想创建仅当引用不为空时才执行方法的扩展方法:
fun WeakReference<T>.safe( body : T.() -> Unit) {
this.get()?.body()
}
用法示例:
mTimerView.safe({startTimer(time)})
// OR
mTimerView.safe { startTimer(time) }
而不是:
mTimerView.get()?.stopTimer()
我做错了什么因为我得到:"Unresolved reference: T" ?
或者也许有更简单的方法,无需扩展方法?
我找到了答案:
fun <T> WeakReference<T>.safe( body : T.() -> Unit) {
this.get()?.body()
}