错误代码:
while(dxfdoc.getDXFBlockIterator().hasNext()){
DXFBlock dXFBlock = (DXFBlock)dxfdoc.getDXFBlockIterator().next();
System.out.println("LayerID: "+dXFBlock.getLayerID()+" Name: "+dXFBlock.getName());
}
正确代码:
Iterator iter = dxfdoc.getDXFBlockIterator();
while(iter.hasNext()){
DXFBlock dXFBlock = (DXFBlock)iter.next();
System.out.println("LayerID: "+dXFBlock.getLayerID()+" Name: "+dXFBlock.getName());
}
错误原因:while(dxfdoc.getDXFBlockIterator().hasNext())中dxfdoc.getDXFBlockIterator()在循环中每次都会变,因此while中每次都是获取第一个,Iterator iter = dxfdoc.getDXFBlockIterator();这样写的话,就相当于一直遍历iter,就一直获取下一个,ok