日常Bug(9.10)
Posted xiangpeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日常Bug(9.10)相关的知识,希望对你有一定的参考价值。
一不小心又写了个bug,其实很简单的一个问题,马虎马虎不仔细,特此记录下来。
Map<String,Object> queryMaxSerialNumber = queryService.queryOne("DhDynamicBaseInfoMapper", "queryMaxSerialNumber", map1); if(queryMaxSerialNumber.isEmpty()){ maxSerialNumber="0"; }else{ maxSerialNumber=queryMaxSerialNumber.get("serialNumber").toString(); }
上述代码中的queryMaxSerialNumber.isEmpty() 这一块由于上面的查询到的queryMaxSerialNumber没有数据,所以并没有给Map<String,Object> queryMaxSerialNumber分配内存空间,所以用isEmpty()出错,而是该用==null。改正如下:
Map<String,Object> queryMaxSerialNumber = queryService.queryOne("DhDynamicBaseInfoMapper", "queryMaxSerialNumber", map1); if(queryMaxSerialNumber==null){ maxSerialNumber="0"; }else{ maxSerialNumber=queryMaxSerialNumber.get("serialNumber").toString(); }
Map的isEmpty()与==null的区别如下:
isEmpty()方法判断Map是否有内容(即new分配空间后是否put键值对),若没有内容则true,否则false
== null是判断map是否为null(即是否new分配空间,和其中的键值对没关系),若没有内容则true,否则false
Map map = new HashMap<String ,String>(); System.out.println("判断map是否有内容:"+map.isEmpty());//返回true System.out.println("判断map是否为null:"+map==null);//返回false
Map map = new HashMap<String ,String>(); map=null; System.out.println("判断map是否为null:"+(map==null));//结果为true System.out.println("判断map是否有内容:"+map.isEmpty());//NullPointerException
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
特此记录以防再犯
以上是关于日常Bug(9.10)的主要内容,如果未能解决你的问题,请参考以下文章