我写了一个条件如下
if (subsriber?.isUnsubscribed && isDataEmpty()) {
loadData()
}因为我的订户可能是空的。显示上述标题错误。所以我把它投到下面
if (subsriber?.isUnsubscribed as Boolean && isDataEmpty()) {
loadData()
}看起来不太好。有更好的方法吗?
发布于 2016-04-07 03:02:11
我通常使用?:操作符解决这种情况:
if (subsriber?.isUnsubscribed ?: false && isDataEmpty()) {
loadData()
}这样,如果subscriber是null,subsriber?.isUnsubscribed也是null,subsriber?.isUnsubscribed ?: false计算结果是false,希望这是预期的结果,否则切换到?: true。
另外,使用as Boolean强制转换可空类型是不安全,如果遇到null,将引发异常。
发布于 2017-09-29 17:20:03
另外,您还需要:kotlin.Boolean。发现: kotlin.Boolean?你可以这样做:
when(something?.isEmpty()) {
true -> { }
false -> { }
null -> { }
}另外,如果您只对感兴趣,那么只需要一个简单的条件语句
if(something?.isEmpty() == true){
this will only worked if not null && empty
}我知道这是个问题,但对于未来的观众来说是有帮助的
发布于 2018-08-15 18:17:22
解决此问题的另一种方法是显式检查表达式是否为true。
if (subsriber?.isUnsubscribed == true && isDataEmpty()) {
loadData()
}https://stackoverflow.com/questions/36465626
复制相似问题