对于Map:
解释:
- isEmpty()方法判断Map是否有内容(即new分配空间后是否put键值对),若没有内容则true,否则false
- == null判断map是否为null(即是否new分配空间,和其中的键值对没关系),若没有内容则true,否则false
https://www.cnblogs.com/zhima-hu/p/7615921.html
Demo:
test1:
Map map = new HashMap<String ,String>();
System.out.println("判断map是否有内容:"+map.isEmpty());//返回true
System.out.println("判断map是否为null:"+map==null);//返回false
test2:
Map map = new HashMap<String ,String>();
map=null;
System.out.println("判断map是否为null:"+(map==null));//结果为true
System.out.println("判断map是否有内容:"+map.isEmpty());//NullPointerException
test3:
Map map = new HashMap<String ,String>();
map.put(null,null);
System.out.println("判断map是否为null:"+(map==null));//false
System.out.println("判断map是否有内容:"+map.isEmpty());//false
如果遇到Map==null,可以在判断里面实例化Map,避免NullPointerException:
Map<String,String> map=null;
if(map==null){
System.out.println("为空,需初始化,即可添加值");
map=new HashMap<String,String>();
map.put("key","value");
}
System.out.println(map.get("key"));
建议:
在编码时,采用:
if(map != null && !map.isEmpty()){
//这个里面取map中的值
}else{
//做其他处理
}