我有此錯誤:java.lang.ArrayIndexOutOfBoundsException:length = 4;索引= 4長度數組
04-02 11:03:57.922: E/AndroidRuntime(18952): FATAL EXCEPTION: main
04-02 11:03:57.922: E/AndroidRuntime(18952): java.lang.ArrayIndexOutOfBoundsException: length=4; index=4
04-02 11:03:57.922: E/AndroidRuntime(18952): at it.nad.cartellecliniche.fragment.SegmentoAnterioreFragment.onTaskComplete(SegmentoAnterioreFragment.java:471)
04-02 11:03:57.922: E/AndroidRuntime(18952): at it.nad.cartellecliniche.asynctask.LookupTask.onPostExecute(LookupTask.java:279)
04-02 11:03:57.922: E/AndroidRuntime(18952): at it.nad.cartellecliniche.asynctask.LookupTask.onPostExecute(LookupTask.java:1)
04-02 11:03:57.922: E/AndroidRuntime(18952): at android.os.AsyncTask.finish(AsyncTask.java:631)
04-02 11:03:57.922: E/AndroidRuntime(18952): at android.os.AsyncTask.access$600(AsyncTask.java:177)
04-02 11:03:57.922: E/AndroidRuntime(18952): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
04-02 11:03:57.922: E/AndroidRuntime(18952): at android.os.Handler.dispatchMessage(Handler.java:99)
04-02 11:03:57.922: E/AndroidRuntime(18952): at android.os.Looper.loop(Looper.java:137)
04-02 11:03:57.922: E/AndroidRuntime(18952): at android.app.ActivityThread.main(ActivityThread.java:5414)
04-02 11:03:57.922: E/AndroidRuntime(18952): at java.lang.reflect.Method.invokeNative(Native Method)
04-02 11:03:57.922: E/AndroidRuntime(18952): at java.lang.reflect.Method.invoke(Method.java:525)
04-02 11:03:57.922: E/AndroidRuntime(18952): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
04-02 11:03:57.922: E/AndroidRuntime(18952): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
04-02 11:03:57.922: E/AndroidRuntime(18952): at dalvik.system.NativeStart.main(Native Method)
這是代碼:
else if (typeTask.equals("LookupSegmentoAnteriore")) {
switch (resultOperation) {
case 200: {
Object[] lista = (Object[]) output[2];
listaBulbo = (String[])lista[0];
Arrays.sort(listaBulbo);
listaApparatoLacrimale = (String[])lista[1];
Arrays.sort(listaApparatoLacrimale);
listaPalpebre = (String[])lista[2];
Arrays.sort(listaPalpebre);
listaCongiuntiva = (String[])lista[3];
Arrays.sort(listaCongiuntiva);
listaCornea = (String[])lista[4];
Arrays.sort(listaCornea);
listaAngolo = (String[])lista[5];
Arrays.sort(listaAngolo);
listaCamera_anteriore = (String[])lista[6];
Arrays.sort(listaCamera_anteriore);
listaIride = (String[])lista[7];
Arrays.sort(listaIride);
listaPupilla = (String[])lista[8];
Arrays.sort(listaPupilla);
listaCristallino = (String[])lista[9];
Arrays.sort(listaCristallino);
break;
}
}
}
我已經添加了新的元件,以該列表從起始
:
listaCornea = (String[])lista[4];
Arrays.sort(listaCornea);
發送至:
listaCristallino = (String[])lista[9];
Arrays.sort(listaCristallino);
有人可以幫我解決這個問題嗎?我不知道如何管理陣列長度問題。我只是將新元素添加到列表中,但我不知道這是否是正確的形式。我需要調整我的數組大小嗎?我該怎麼做?
非常感謝
你不能調整一個'array' – Baby
'長度= 4;索引= 4長度數組「 - 數組索引是基於** 0的**。對於** length = 4 **的數組,索引範圍是** 0,...,3 **。索引= 4是**超出範圍**。 –
您不能調整數組的大小,您可以改爲使用[ArrayList](http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html)。 –