Я получаю эту ошибку:ClassCastException: ArrayList не может быть приведен в строку
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String
Это код:
public static List<String>produit_cart(ArrayList l)
{
List<String>re=new ArrayList();
List<String>l4=new ArrayList();
re=(List<String>) l.get(0);
for(int i=1;i<l.size();i++)
{
l4=new ArrayList();
for(int j=0;j<re.size();j++)
{
for(int k=0;k<((ArrayList)l.get(i)).size();k++)
{
l4.add(re.get(j) +
" " +
(String)((ArrayList)l.get(i)).get(k));
}
}
re=new ArrayList();
for(int m=0;m<l4.size();m++)
{
re.add(l4.get(m));
}
}
return re;
}
Проблема заключается в этой строке:
l4.add(re.get(j)+" "+(String)((ArrayList)l.get(i)).get(k));
I попытался переписать его как:
l4.add(re.get(j)+" "+((ArrayList)l.get(i)).get(k));
но это не сработало. Что мне делать ?
Почему вы не используете дженерики по обе стороны от ваших объявлений? Почему ваши имена переменных не являются полезными? –
Вторая «попытка» не вызывает этого исключения ... –
Вам необходимо функционально разложить это. Назовите вещи ортогональным образом (как упоминалось выше), добавьте некоторые комментарии, где вещи не очевидны и согласуются с вашим использованием дженериков. На данный момент три петли глубоко, этот код просто не имеет смысла. Если вы сделаете это читаемым, ответ выскочит на вас. –