list 如何判空以及为什么

一、list==null 与list.size()==0的区别

假设在json中一个list,它长这个样子:

{
    "priceFactors": [{
            "code": "region",
            "value": "region-beijing-zww"
        },{
            "code": "chargeType",
            "value": "dailySettlement"
        }]
}

那么,list == null 的情况下,它就长这个样子了:

{
    "priceFactors":null
}

而list.size()==0 的情况下,它长这个样子:

{
    "priceFactors":[]
}

因此,list == null代表这个list不存在,没有进行初始化;list.size()==0代表这个list初始化了,却没有存任何值。

二、判空只用上述其中一个,会出现什么情况?

假设你想对一个list判空,并且想在list非空的时候从list中取值。

如果只用list == null判空,只校验了这个list是不是进行初始化了,如果这个list已经进行了初始化,但是没有存值,后面从list取值的时候,依然会报错。

如果只用list.size()==0来判空,假设这个list都没有进行初始化,list.size()这里就直接空指针异常了。

三、如何对list判空。

同时使用list == null 和list.size()==0进行判空

If(list == null || list.size()==0)

或者

If(list != null && list.size()!=0)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值