2013-06-01 49 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

但在发布之前,你必须做好功课。