我有一个声明为的变量
private lateinit var apiDisposable: Disposable
然后在onPause()
方法中,我正在做
override fun onPause() { super.onPause() if (!apiDisposable.isDisposed) apiDisposable.dispose() }
但我明白了
kotlin.UninitializedPropertyAccessException:lateinit属性apiDisposable尚未初始化
任何人都可以告诉我如何检查此变量是否已初始化?有没有像这样的方法isInitialised()
任何帮助,将不胜感激
1> user6327816..:
if(::apiDisposable.isInitialized)
会解决你的问题.
一般来说,
::
用于检查是否已初始化.
2> Egor..:
将您的属性声明为可空类型的简单属性:
private var apiDisposable: Disposable? = null
使用安全呼叫表示法调用该方法:
override fun onPause() { super.onPause() apiDisposable?.dispose() }
lateinit
保留用于保证初始化的变量,如果不是这种情况 - 请勿使用它.
- 随机文章
- 热门文章
- 热评文章
- 如何使用zx编写shell脚本
- 为什么Windows上的目录的Files.isHidden(Path)返回false?
- PHP验证邮箱是否合格
- url-loader/file-loader使用webpack打破CSS输出中的相对路径
- PHP如何去除数组中的空值?(图文+视频)
- pandas-有效地计算作为日内数据的列的微小返回
- mark:pb_ds 普通平衡树
- 2022年全球及中国脂肪测量仪行业头部企业市场占有率及排名调研报告