java在将列表内容存储到集合中时遇到类强制转换异常
我已经启动了下面的hibernate查询,它完美地获取了数据,但返回类型是List,如下所示
public List<Object[]> Extractingc()
{
Criteria criteria = session.createCriteria(IDetails.class);
ProjectionList proList = Projections.projectionList();
proList.add(Projections.property("ter")); //is of string type
proList.add(Projections.property("sem")); //is of string type
proList.add(Projections.property("tid")); //is of long type in pojo *******
proList.add(Projections.property("def")); //is of string type
criteria.setProjection(proList);
List<Object[]> settlementIdList = criteria.list();
return sst;
}
现在java代码中出现的问题是,我将上述方法的结果放入代码中的一个列表中,如下所示
List<Object[]> ioaist = = ioabookandinstrumenthome.Extractingc();
现在,我进一步创建了一个集合,如集合中所示,我希望在集合中存储所有4个参数的组合,即sem+tid+ter+def,如下所示
Set<String> st = new HashSet<String>();
for (Object[] arr : ioabookandinstrumenthomelist)
{
s=((String) arr[0]+ (String) arr[1]+ (String) arr[2]+ (String) arr[3]); //*** getting class cast exception
st.add(s);
s=null;
}
但我得到了类强制转换异常,因为我的参数tid是long类型,不能转换为字符串
# 1 楼答案
是的,你不能对弦投长。但是,您可以使用String.valueOf()