一个奇怪的:java.lang.ArrayIndexOutOfBoundsException:0

时间:2014-06-19 17:13:42

标签: java

我遇到了动态表的问题。这是代码:

public static Object[][] extractSCTableData(Hashtable<Integer,Colis> lColis) {
    Object[][] tableData = {{}};
    int i=0;
    Set<Integer>keySet = lColis.keySet();
    for (Integer currKey:keySet) {
        tableData[i][0]=lColis.get(currKey).expediteur;
        tableData[i][1]=lColis.get(currKey).noColis;
        tableData[i][2]=currKey;
        i++;
    }
    return tableData;
}

我有一个例外而且我不知道为什么......错误:

java.lang.ArrayIndexOutOfBoundsException: 0

显然我不知道如何宣布我的标签! 奇怪的是,我有相同类型的方法(在另一个类中)没有错误。 另一种方法:

public static Object[][] extractSCTableData(Course[] lCourse)
        throws ExceptionColisInconnu {
    int nbCourse = lCourse.length;
    Object[][] tableData = { {} };
    for (int i = 0; i < nbCourse; i++) {
        short noColis = lCourse[i].noColis;
        String etat;
        org.omg.CORBA.ORB orb;
        String[] str = {};
        orb = org.omg.CORBA.ORB.init(str, null);
        G_Colis g_colis = (G_Colis) orb
                .string_to_object(lCourse[i].IORG_Colis);

        switch (g_colis.demandeEtat(noColis).value()) {
        case etatColis._enTransport:
            etat = "En cours";
            break;
        case etatColis._aDestination:
            etat = "Livré";
            break;
        case etatColis._auDepart:
        case etatColis._enAttenteDeTransport:
            etat = "Enregistrée";
            break;
        default:
            etat = "Non Défini";
            break;
        }
        tableData[i][0] = Short.toString(noColis);
        tableData[i][1] = etat;
    }
    return tableData;
}

如果sombebody看到的东西...... 谢谢你们

2 个答案:

答案 0 :(得分:3)

没有tableData[0][1]tableData[0][2],因为Object[][] tableData = {{}};定义了一个维度为[1] [0]的数组

答案 1 :(得分:1)

Object[][] tableData = new Object[lColis.keySet().length][3];