36.JAVA方法间少用map来传递数据(java mapforeach)

createh52个月前 (05-09)技术教程28

有时候代码上线了才报异常,有次就是因为使用map来传递数据,因为疏忽使线上的功能异常。

举个例子:

/*赋值**/
public void  set()
{
    Map<String,Object> map=new HashMap<>();
    map.put("id",1);
    map.put("name","张三");
    get(map);
}
    /*获取**/
public void get(Map<String,Object> map)
{
    Integer id=new Integer(map.get("id").toString());
    String name=map.get("name").toString();
}

我相信很多人都这样写过,使用map来传递数据,有一个隐患就是,如果我把map.put("name","张三");改成map.put("val","张三");,但是get方法里忘了改String name=map.get("name").toString();。那运行就报空指针异常了,因为没有name的key了。

那么怎么改才会避免这个问题,我建议使用实体类。使用实体类,你忘记改了,项目打包时就报错误,避免了线上的异常。

相关文章

「Java必修课」通过Value获取Map中的键值Key的四种方法

作者:南瓜慢说来源:博客园1 简介我们都知道Map是存放键值对<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值。然而,有的时候我们需要反...

遇到MapStruct后,再也不手写PO,DTO,VO对象之间的转换了

介绍在工作中,我们经常要进行各种对象之间的转换。PO:persistent object 持久对象,对应数据库中的一条记录VO:view object 表现层对象,最终返回给前端的对象DTO:data...