java.lang.ArrayIndexOutOfBoundsException:长度= 4;指数= 4长度的数组 [英] java.lang.ArrayIndexOutOfBoundsException: length=4; index=4 length array

查看:331
本文介绍了java.lang.ArrayIndexOutOfBoundsException:长度= 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)

这是code:

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;
                }
            }
        }

我添加了一些新的元素到列表中开始

i have added new elements to the list starting

从:

listaCornea = (String[])lista[4];
Arrays.sort(listaCornea);

listaCristallino = (String[])lista[9];
Arrays.sort(listaCristallino);

有人可以帮我解决这个问题呢?我不知道如何管理数组长度的问题。我刚加入的新元素到列表中,但我不知道这是否是正确的形式去做。我是否需要调整我的阵列?我该怎么办呢?

somebody can help me to resolve this problem? i don't know how to manage the array length problem. I just added the new elements to the list, but i don't know if this is the right form to do it. Do i need to resize my array? how i can do that?

非常感谢

推荐答案

问题是你的阵列可以宣布只有4间客房,这意味着你可以访问3最大索引
但在上述code你要访问4索引,那么它会抱怨,你的指数进行约束,你lenth为4,

problem is your array may declared to have only 4 rooms, that means you can access maximum index of 3 but in above code you gonna access 4th index, then it will complain that your index bound in out,your lenth is 4,

你应该使用,而不是数组ArrayList的,因为数组不能声明之后被调整,
但您可以添加任意数量的对象的ArrayList

you should use ArrayList instead of array,because Array can't be resize after declaration, but you can add any number of objects to arraylist.

ArrayList<Object> lista=new ArrayList<Object>();

这篇关于java.lang.ArrayIndexOutOfBoundsException:长度= 4;指数= 4长度的数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆