工作的时候,遇到了判断list集合是否为空的问题。
一开始我是这样写的。
if(list == null)
但是idea直接报黄,提示信息是Condition ‘list == null‘ is always ‘false‘ ,告诉我们if里边判断的条件总是错的,也就是list集合里无论有没有东西都不为null。
这个时候我们就要理解null到底是什么。
null是所有引用类型的默认值。
在java中,对于入门来说,在接触类型的时候,总会被告知,java中有八种基本类型,数据大小从小到大依次为
byte
- > short
- > char
- > int
- > long
- > float
- >double
基本类型的定义:就是java程序已经对这些类型定义好了规则,你在创建这些类型对象的时候,不能不符合这些类型的规则。
引用类型的定义:可以说除了基本类型其他的都是引用类型,如果你在创建一个引用类型的时候,如果不初始化赋值的话(创建对象的时候,在方法体中必须先初始化),那么默认值一般都是null。
null的定义:null值既不是对象,也不是一个特殊的类型,他只能说是一种特殊的值,可以赋值给任何引用类型,不能赋值给基本类型。
但是我们在创建list集合的时候,总要先new一下,这时候list集合就已经不是null了,因此集合的创建本身就是创建出一个可以承接东西的水杯,水杯中要用来装水,你只要new这个水杯就已经创建出来了,水杯既然已经存在当然不可能为null,因此判断list集合是否为空,我们需要先看它有没有new ,如果没有new的话就需要双重判断
if(list!=null && list.size()>0) { }
即判断这个水杯存在不存在,又判断里边有没有水,list.size()>0和list.isEmpty()是一样的,根据自己喜好使用。
原文:https://www.cnblogs.com/bumiedeyinhe/p/14461314.html