在java中使用hibernate将列表类型转换为字符串



我尝试将列表数据类型转换为字符串,但其显示错误为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

几点:

  1. 下转换为List <String>,而不是你现在的原始类型;
  2. 使用增强的for循环遍历列表。不要做基于索引的迭代;
  3. 一旦你处理了上面的问题,你的代码就会简单到足以让bug消失:

     for (String columname : (List<String>) ganttablecolumnlist) ...
    

最新更新