java.lang.ClassCastException:[Ljava.lang.String;无法强制转换为java.util.List

时间:2012-06-19 10:03:40

标签: java generics arraylist classcastexception

我有一个List,我试图以两种不同的方式使用它......

private List<List<List<String>>> mListSelectedsWeekDAY;

// technique 1
for(int t = 0; t < mListSelectedsWeekDAY.get(0).get(0).size();t++){
    ...
}

// technique 2
List<String> tmpList = mListSelectedsWeekDAY.get(0).get(0);

我的名单就像这样填充......

mListSelectedsSDAY = new ArrayList<List<List<String>>>(); 
for (int i = 0; i < mListTimeBand.size(); i++) { 
    List<List<String>> tmp2 = new ArrayList<List<String>>(); 
    for (int j = 0; j < mListTimeBand.get(i).getTimeBandDefList().getTimeBandDefini().size(); j++) { 
        List<String> tmp1 = new ArrayList<String>(); 
        if (mListTimeBand.get(i).getTimeBandDefList().getTimeBandDefini().get(j).isAllSpeci‌​alDays()) { 
            for (int t = 0; t < mListSDayType.size(); t++) { 
                tmp1.add(mListSDayType.get(t).getSpecialDayName()); 
            } 
        }
        tmp2.add(tmp1); 
    }

    mListSelectedsSDAY.add(tmp2); 
}

但是我的代码总是会出现以下错误...

java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.util.List

有人可以帮我理解为什么会这样。

2 个答案:

答案 0 :(得分:-1)

一种可能的情况可能是,在你的一系列Get方法()中,你正在前进以获得字符串并将其分配给List变量。

答案 1 :(得分:-1)

您实际上有一个List<List<String>>,而不是List<List<List<String>>>

您必须在某处使用原始List类型才能实现此目的