java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.intern…

记录一个bug

java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter item

image.png

image.png

我们先不看返回数据:

{
        "code":"200",
        "data":{
            "current":1,
            "hitCount":false,
            "optimizeCountSql":true,
            "orders":[],
            "pages":1,
            "records":[
                null
            ],
            "searchCount":true,
            "size":10,
            "total":1
        },
        "msg":"成功"
    }

一个列表 使用的是 BAV BaseQuickAdapter
我们定位到 CollectionSupplyListAdapter的 13行

image.png

这他妈 13行是 类定义的开始啊 直接是懵逼 草草
仔细观察日志:

image.png

item 但在这个适配器里哪有item啊 找到了convert方法中的参数item

class CollectionSupplyListAdapter constructor(
    layoutId: Int,
    data: ArrayList<CollectionSupplyListBean.DataDTO.RecordsDTO>
) :
    BaseQuickAdapter<CollectionSupplyListBean.DataDTO.RecordsDTO, BaseViewHolder>(layoutId, data),
    LoadMoreModule {
    override fun convert(holder: BaseViewHolder, item: CollectionSupplyListBean.DataDTO.RecordsDTO) {

        holder.setText(R.id.tv_item_supply_list_create_time, item.pubTime)
            .setText(R.id.tv_item_supply_list_title, item.supplyTitle)
//            .setText(R.id.tv_item_supply_type, if (item.supply_quote_type == "1") item.supply_quote else "面议")
            .setText(R.id.tv_item_supply_type, item.supplyQuoteTypeText)
            .setText(R.id.tv_item_supply_service_location, item.supplyArea)
            .setText(R.id.tv_item_supply_list_status, item.statusText)
        var businessType = holder.getView<TextView>(R.id.tv_item_supply_business_type)


        item.supplyType?.let {

            when (it) {
                "1" -> {
                    businessType.text = "供给类型:法律"
                }
                "2" -> {
                    businessType.text = "供给类型:财税"
                }
                "3" -> {
                    businessType.text = "供给类型:投融资"
                }
                "4" -> {
                    businessType.text = "供给类型:知产综合"
                }
            }

        }

    }
}

这个item 也就是条目的数据

image.png

我们找到网络请求的地方下上断点

image.png