网站首页 > java教程 正文
有时候代码上线了才报异常,有次就是因为使用map来传递数据,因为疏忽使线上的功能异常。
举个例子:
/*赋值**/
public void set()
{
Map map=new HashMap<>();
map.put("id",1);
map.put("name","张三");
get(map);
}
/*获取**/
public void get(Map 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了。
那么怎么改才会避免这个问题,我建议使用实体类。使用实体类,你忘记改了,项目打包时就报错误,避免了线上的异常。
猜你喜欢
- 2025-03-20 Java中的Map.of()和New HashMap()哪个更好?
- 2025-03-20 Java、Set、Map集合框架知识大全,收藏备用
- 2025-03-20 「Java必修课」通过Value获取Map中的键值Key的四种方法
- 2025-03-20 Java 实体映射工具 MapStruct(jpa实体类映射类)
- 2025-03-20 破碎虚空!盘点《我的世界》关于虚空的冷知识,鸡:你礼貌吗?
- 2025-03-20 Java中Map的entrySet()使用说明(java map的常用方法)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)