【发布时间】:2014-04-30 08:53:24
【问题描述】:
我有一个奇怪的问题:迭代一个linkedhashmap的键集,get在某些键上返回null:
...
System.out.println("Map: "+wildCardSummaryKey);
try {
rowKeys = wildCardSummaryKey.keySet().iterator();
while (rowKeys.hasNext()) {
String rowKey = (String) rowKeys.next();
ProcessTables.Counter counter = (ProcessTables.Counter) wildCardSummary.get(rowKey);
System.out.println("key='"+rowKey+"', containsKey="+wildCardSummaryKey.containsKey(rowKey)+", value="+counter);
System.out.println("count: "+counter.getCount());
}
} catch(NullPointerException e) {
e.printStackTrace();
}
输出是(手动格式化以获得更好的可读性):
Map: {
abc:abc vpn:Klant:Stichting BlaBla College:Stichting BlaBla College=com.my.ProcessTables$Counter@54deac,
abc:abc uni/nni:Klant:CA BlaBla F & O BV:CA BlaBla F & O BV=com.my.ProcessTables$Counter@43e6ee5f,
abc:abc vpn:Klant:CA BlaBla F & O BV:CA BlaBla F & O BV=com.my.ProcessTables$Counter@6e2bc1cc,
abc:abc uni/nni:Klant:Stichting BlaBla College:Stichting BlaBla College=com.my.ProcessTables$Counter@7ac07095
}
key='abc:abc vpn:Klant:Stichting BlaBla College:Stichting BlaBla College', containsKey=true, value=null
java.lang.NullPointerException
at com.my.ProcessTables.getData(ProcessTables.java:1166)
at com.my.ProcessTables.processRequest_getData(ProcessTables.java:1629)
at com.my.ProcessTables.processRequest(ProcessTables.java:81)
第 1166 行是这一行:System.out.println("count: "+counter.getCount());
so:虽然迭代器给了我密钥,但我无法从映射中获取值对象!到底是怎么回事?有什么想法吗?
谢谢! 坦率的
【问题讨论】:
标签: java map linkedhashmap