0

我试图将列表数据类型转换为字符串,但它显示错误为 java.lang.ClassCastException:java.lang.String 无法转换为 java.util.List 请帮我解决这个问题。这是使用休眠完成的。

for(int i2=1; i2<=gantttablecolnameList.size(); ++i2)
{
   columnname= (String) ((List)gantttablecolnameList.get(i1)).get(0);
}

此列表包含表列名称。

4

3 回答 3

1

如果你List gantttablecolnameList真的有String然后试试这个:

for(int i2=0; i2<gantttablecolnameList.size(); i2++)
{
  columnname= (String) (gantttablecolnameList.get(i2));
}

你正在这样做:

(List)gantttablecolnameList.get(i1)

假设您的 List gantttablecolnameListcontains StringgantttablecolnameList.get(i1)将为您提供一个Object实际上是String由 的运行时值指定的索引的实例i1。所以,简而言之,你正在尝试这个:

 (List)"someString";

这是不可能的。

于 2013-06-21T08:52:13.687 回答
0

尝试

 columnname= (String) ((List)gantttablecolnameList).get(0));

(List)gantttablecolnameList.get(i1))gantttablecolnameList.get(i1)会给你元素..而不是列表。

但实际上你必须检查空条件。你的到现在为止NUll PATTERN

于 2013-06-21T08:51:27.153 回答
0

几件事:

  1. 向下转换List <String>为您现在拥有的原始类型;
  2. 使用增强的 for 循环遍历列表。不要做基于索引的迭代;
  3. 处理完上述问题后,您的代码将非常简单,足以使错误消失:

     for (String columname : (List<String>) ganttablecolumnlist) ...
    
于 2013-06-21T09:10:43.757 回答