空时检查布尔值

时间:2019-06-12 09:21:23

标签: kotlin

如果字段“ size”为空,则将引发异常:

    .dataTables_scrollHeadInner, .table{
      width:100%!important
         };

我尝试使用.size!但这也产生了异常。如何检查尺寸是否大于零?

1 个答案:

答案 0 :(得分:3)

(p!!.company?.industries?.size ?: 0) > 0
如果size(或更可能是链中的另一个元素)为null

会给您0,因此比较为0 > 0,这是错误的。

但是请注意:为什么一切首先都可以为空?为何您会有?.!!这样的随机组合?

  

所有字段成员都可以为空,因为此数据是从Web导入的,因此不能保证任何字段都会存在。

即使那样,您至少也可以做

val industries = p?.company?.industries
if (industries != null && industries.size > 0) {
    job.industryName = industries[0]
}

p?.company?.industries?.let { 
    if (it.size > 0) { job.industryName = it[0] }
}

如果您不想为其创建变量。