list 如何判空以及为什么

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:26   2169   0

一、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)

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP