PHP
·
发表于 5年以前
·
阅读量:8389
lateinit 本身的含义是延迟初始化,但是在编译时必须保证 lateinit 修饰的参数被初始化,否则编译不过去的
今天就碰到了这个问题,我有个对象函数外接可能不会赋值的,我用的 lateinit 修饰的这个对象函数,结果死活编译不过去,蛋疼死了
最后发现只能这么写:
// 声明时用 ?. null
var mCallBack: MyWebViewCallBack? = null
// 使用时 ?. !! 才行
if (mCallBack != null) {
result = mCallBack?.shouldOverrideUrlLoading(view, url)!!
return result
}