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