在java中使用hibernate将列表类型转换为字符串
我试图将列表数据类型转换为字符串,但其显示错误为java.lang.ClassCastException:java.lang.string无法转换为java.util.list 请帮助我解决此问题。这是使用hibernate完成的在java中使用hibernate将列表类型转换为字符串,java,hibernate,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); } fo
for(int i2=1; i2<=gantttablecolnameList.size(); ++i2)
{
columnname= (String) ((List)gantttablecolnameList.get(i1)).get(0);
}
for(inti2=1;i2Try
在(List)GantTableColNameList.get(i1))
中,GantTableColNameList.get(i1)
将为您提供元素..而不是列表
但实际上,您必须检查空条件。您的空模式现在是空模式
如果您的列表GantTableColNameList
确实有字符串
,请尝试以下操作:
for(int i2=0; i2<gantttablecolnameList.size(); i2++)
{
columnname= (String) (gantttablecolnameList.get(i2));
}
假设您的列表GantTableColNameList
包含字符串
,GantTableColNameList.get(i1)
将为您提供一个对象
,该对象实际上是字符串
实例,用于运行时值i1
指定的索引。简而言之,您正在尝试以下方法:
(List)gantttablecolnameList.get(i1)
(List)"someString";
这是不可能的。有几件事:
向下转换到列表
,而不是现在的原始类型李>
使用增强的for循环迭代列表。不要进行基于索引的迭代李>
处理完上述问题后,您的代码将变得足够简单,可以让bug简单地消失:
for (String columname : (List<String>) ganttablecolumnlist) ...
用于(字符串列名:(列表)甘特表列列表)。。。
无法将java.lang.String转换为true
的java.util.List。您想要实现什么?在对Java数据类型有了充分的了解之前,不应该从Hibernate开始。如何声明GantTableColNameList
?你确定你的循环从1开始吗?(列表索引计数从0开始)GantTableColNameList声明为List GantTableColNameList=new ArrayList();
for (String columname : (List<String>) ganttablecolumnlist) ...