2013-06-01 3 views
-8

Почему я получаю эту ошибку? Я не понимаю. Вот код, в котором он выбрал исключение.ArrayIndexOutOfBounds Исключение Java

public static final int getItemDefinitionsSize(Store store) { 
    int lastArchiveId = store.getIndexes()[19].getLastArchiveId(); 
    return lastArchiveId * 256 
      + store.getIndexes()[19].getValidFilesCount(lastArchiveId); 
} 

И вот само исключение.

java.lang.ArrayIndexOutOfBoundsException: 19 
    at com.alex.Utils.getItemDefinitionsSize(Utils.java:50) 
    at Kjs.Application.addAllItems(Application.java:186) 
    at Kjs.Application.initialize(Application.java:182) 
    at Kjs.Application.<init>(Application.java:52) 
    at Kjs.Application$1.run(Application.java:39) 
    at java.awt.event.InvocationEvent.dispatch(Unknown Source) 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$200(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour 
    ce) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 
    Press any key to continue . . . 
+5

Я думаю, что ваше исключение довольно понятно, вы ссылаетесь на индекс, который не находится в вашем массиве. – Keppil

+0

Ну, это не мой код ... Его что-то еще написал, что раньше работало отлично. Я понятия не имею, как это индекс отсутствует в массиве. –

+0

Тогда вам следует выяснить, как выглядят данные. Используйте отладчик для его проверки. – Keppil

ответ

1

В строке ниже

int lastArchiveId = store.getIndexes()[19].getLastArchiveId(); 

вы пытаетесь получить значение оттуда, не exists.That означает длину этого массива вы обращаетесь ниже 19.

Но вам нужно сделать домашнее задание перед публикацией здесь.

Смежные вопросы