2012-03-29 9 views
0

Ich habe eine ArrayList von Klassen und wenn ich die unten stehende Funktion ausführen bekomme ich einen StackOverflowError manchmal geworfen und ich bin nicht 100% sicher, warum, sollte die If-Anweisung dies ausschließen? Es enthält nur < 500 Elemente und keine anderen Threads giddle mit "toCheck".StackOverflowError beim Entfernen ArrayList-Objekt

if(toCheck.contains(currentConsideration)){ 
    toCheck.remove(currentConsideration); 
} 

Jede Hilfe wäre sehr willkommen!

+3

finden Können Sie die equals Methoden der currentConsideration Objekt schreiben? –

+1

Das Stück Code sieht gut aus. Aber ich vermute, dass es in der Schleife verwendet wird. Kannst du uns mehr Code geben? – bigGuy

+3

versuchen, 'toCheck.contains (currentConsideration)' zu entfernen und nur 'toCheck.remove (currentConsideration);'. Es wird das Element löschen, falls vorhanden. –

Antwort

0

Dies könnte daran liegen, dass Sie versuchen, ein Objekt zu entfernen, das Sie versuchen, es in der Liste zu finden ... ConcurrentModificationException.

Wenn Sie versuchen, zu debuggen. Zu welchem ​​Zeitpunkt erhalten Sie tis Fehler

die Lösung abgeben, wenn Sie irgendeine

Verwandte Themen