给同事改了个bug,非得抬杠说为什么
先看map存入的数据
Map<String,Object> map = new HashMap<>();
map.put("key",Long.valueOf("-85064526666"));
然后取出来
//error
System.out.println(Long.parseLong((String) map.get("key")));
我第一眼看也觉得没毛病,但是报错
java.lang.Long cannot be cast to java.lang.String
类型转换错误,挺好解决的
//true
System.out.println(Long.valueOf(map.get("key").toString()));
这又有什么区别呢,整天写代码,这些基础性的东西就都忘了,我也答不上来,那就写个test打断点
结果挺尴尬的
因为map中存的是Long类型的,所以转强转String会报错,toString不会报错
当然这样才正常,引以为戒
//true
System.out.println((Long) map.get("key"));