Kotlin:必需:kotlin.Boolean。 找到:kotlin.Boolean?
我写了一个条件如下
if (subsriber?.isUnsubscribed && isDataEmpty()) { loadData() }
由于我的订户可能为空。 显示上面的标题错误。 所以我把它如下
if (subsriber?.isUnsubscribed as Boolean && isDataEmpty()) { loadData() }
它看起来不是很好。 有没有更好的方法来做到这一点?
我通常用?:
运算符来解决这种情况:
if (subsriber?.isUnsubscribed ?: false && isDataEmpty()) { loadData() }
这样,如果subscriber
为null
,则subsriber?.isUnsubscribed
也是null
并且subsriber?.isUnsubscribed ?: false
为false
,这是希望的结果,否则切换到?: true
。
使用as Boolean
来强制类型化也是不安全的 ,如果遇到null
,将抛出一个异常。
还有,你只是要求:kotlin.Boolean。 找到:kotlin.Boolean ? 你可以这样做:
when(something?.isEmpty()) { true -> { } false -> { } null -> { } }
我知道这是回答问题,但对于未来的观众可能会有所帮助