[code="java"]
Map> readCache = ServiceCache.getReadcache();
Set sets = readCache.keySet();
for (Integer siteNum : sets) {
List<ByteBuffer> buffers = readCache.get(siteNum);
if (buffers.size() > 0) {
ByteBuffer buffer = buffers.get(0);
HeartBeatPackage hb = ServerDataParser.getHreatBeat(buffer);
buffers.remove(0);
}
[/code]
大致代码如上,从map中取出一个ArrayList,在使用之前我判断buffer.size() >0 了。为什么还会报异常
Exception in thread "Thread-13" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.remove(ArrayList.java:387)
at com.hongdian.rtu.process.DisData.run(DisData.java:38)
at java.lang.Thread.run(Thread.java:662)