java.lang.IndexOutOfBoundsException
Eu uso o ArrayList para armazenar as 'sombras' de todos os retângulos do nível, mas quando iteramos o seguinte:
for(int n = 0; n < shadows.size(); ++n){
g2d.fillPolygon(shadows.get(n)[0]);
g2d.fillPolygon(shadows.get(n)[1]);
g2d.fillPolygon(shadows.get(n)[2]);
g2d.fillPolygon(shadows.get(n)[3]);
g2d.fillPolygon(shadows.get(n)[4]);
g2d.fillPolygon(shadows.get(n)[5]);
}
Eu recebo umjava.lang.IndexOutOfBoundsException
erro que se parece com isso:Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 42, Size: 79
Por que eu recebo o erro, mesmo que o número do índice não seja igual ou superior ao tamanho? O programa ainda funciona normalmente, mas ainda não quero que ele tenha erros.
Eu também tentei um loop for encantado, mas então recebo umjava.util.ConcurrentModificationException
em vez de
for(Polygon[] polys : shadows){
g2d.fillPolygon(polys[0]);
g2d.fillPolygon(polys[1]);
g2d.fillPolygon(polys[2]);
g2d.fillPolygon(polys[3]);
g2d.fillPolygon(polys[4]);
g2d.fillPolygon(polys[5]);
}