【发布时间】:2015-11-22 12:29:13
【问题描述】:
我想创建扩展方法,只有当引用不为空时才会执行方法:
fun WeakReference<T>.safe( body : T.() -> Unit) {
this.get()?.body()
}
用法示例:
mTimerView.safe({startTimer(time)})
// OR
mTimerView.safe { startTimer(time) }
代替:
mTimerView.get()?.stopTimer()
我做错了什么,因为我得到:“未解决的参考:T”?
或者也许没有扩展方法有更简单的方法?
【问题讨论】:
-
我认为这是一个可用性错误。错误信息具有误导性
-
mTimerView.safe(stopTimer())是如何编译的?不应该是mTimerView.safe { stopTimer() }吗?
标签: extension-methods weak-references kotlin