2016-11-18 1 views
1
private void removeQueue(Queue queue) 
    { 
     queue.setTodoDeleted(false); 
     if (queueIndex != -1) { 
      this.queueList.add(queueIndex , queue); 
      mItemManger.closeAllItems(); 
     } 
    } 

wo queueList ist Arraylist mit queue Arraylist queuelist.IndexOutOfBoundException während in queueList Zugabe

Problem: ist Index 2 und Listengröße ist 1, während in der queueList Zugabe so, wirft IndexOutOfBoundException bei Line
this.queueList.add(queueIndex , queue).

Was ist der beste Weg, dies zu vermeiden? In Advanced, danke

+0

Woher kommt 'queueIndex'? Es sollte die "Warteschlange" Größe folgen ... – AxelH

+0

Index ist 2 und Listengröße ist 1, Sie versuchen, Element, das nicht existiert – Venkat

Antwort

2

Um IndexOutOfBounds Problem zu vermeiden, überprüfen Sie die tatsächliche Größe und den Index, den Sie verwenden werden, bevor Sie den Vorgang ausführen.

if (queueList.size()>queueIndex) 
{ 
    this.queueList.add(queueIndex , queue); 
} 
// Add else part if needed 
+0

Dank, Venkat mit diesem es funktioniert keine Ausnahme geworfen. – Swift

+1

@Swift Sie sollten versuchen zu finden ** warum ** queueIndex ist größer als die tatsächliche Größe. – AxelH