近期做个项目时,遇到一个奇怪的问题,key值相同,但是根据key获取的对象一直为空,我就很郁闷;本地调试bug发现依然是没有数据,打印日志发现也是空,崩溃ing;之后突然想起看看2个key的类型,果然key值相同但是类型不同,一个Integer,一个是Long,妥妥的被自己玩了一把
看下面?
Integer number = 10;
Long sameNumber= 10L;
Map<Integer,String> map = new HashMap<>(1);
map.put(number,“test object”);
System.out.println(map.get(sameNumber));
System.out.println(map.get(number));
Null
test object
估计大家都知道结果是什么,没错,类型不同值相同,返回结果是null
感兴趣,可以看看JMV的内存模型