我在Java中遇到了Map的问题.该代码如下所示:
Map<Object, Object> test = myClass.getMap();
int value = (int) test.get(myID);
Run Code Online (Sandbox Code Playgroud)
当我到达第二行时,我得到一个:
java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)
现在我问自己如何调试这个并找到为什么这不起作用?我很确定所有的键和值都在这张地图中.
如何打印整个地图,以便我可以搜索密钥是否可用?(这是一张很长的地图)
或者找到问题的正确方法是什么?
你可以map.containsKey(key)检查密钥是否存在
原因NPE,是对价值myId的map是null,你正试图将其转换为原始的int(这不能持有非空值).将其更改为以下语句将避免异常(除非映射test本身是null)
Integer value = (Integer ) test.get(myID);
Run Code Online (Sandbox Code Playgroud)