我尝试将列表数据类型转换为字符串,但其显示错误为java.lang.ClassCastException: java.lang.String不能转换为java.util.List请帮我解决这个问题。这是使用hibernate完成的。
for(int i2=1; i2<=gantttablecolnameList.size(); ++i2)
{
columnname= (String) ((List)gantttablecolnameList.get(i1)).get(0);
}
如果你的List gantttablecolnameList
真的有String
,那么试试这个:
for(int i2=0; i2<gantttablecolnameList.size(); i2++)
{
columnname= (String) (gantttablecolnameList.get(i2));
}
你正在做这个:
(List)gantttablecolnameList.get(i1)
假设您的List gantttablecolnameList
包含String
, gantttablecolnameList.get(i1)
将给您一个Object
,它实际上是i1
运行时值指定的索引的String
实例。所以,简而言之,你正在尝试:
(List)"someString";
Try
columnname= (String) ((List)gantttablecolnameList).get(0));
在(List)gantttablecolnameList.get(i1))
中,gantttablecolnameList.get(i1)
会给你元素…不是列表
但是你必须检查空条件。你现在是NUll PATTERN
几点:
- 下转换为
List <String>
,而不是你现在的原始类型; - 使用增强的for循环遍历列表。不要做基于索引的迭代;
-
一旦你处理了上面的问题,你的代码就会简单到足以让bug消失:
for (String columname : (List<String>) ganttablecolumnlist) ...