有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    是的,你不能对弦投长。但是,您可以使用String.valueOf()