j2ee中的类强制转换异常错误

时间:2015-05-10 12:02:46

标签: java

我正在尝试从我的数据库中的特定列检索记录,在finder中编写entitybean方法后,我从会话bean Class Cast Exception: java.lang.String cannot be cast to packagename.PaymentsLocal收到错误。下面是我的会话bean类

中的代码片段
ArrayList a = new ArrayList();
Collection col = null;
 try{
    col = plh.findByAllSessions();
    Iterator i = col.iterator();
    while(i.hasNext()){
       pl = (PaymentsLocal)i.next(); 
       a.add(new paymenthelper( pl.getSession()));
    }
  } catch (Exception e) {
     System.out.println("viewing all sessions"+e.getMessage());
  }
 return a;
}

1 个答案:

答案 0 :(得分:0)

这些行隐式设置Iterator<String>,因为您在plh.findByAllSessions()中返回的任何集合都是字符串集合。

col = plh.findByAllSessions();
Iterator i = col.iterator();

因此,这一行试图强制String到PaymentsLocal对象,这是不可能的,导致ClassCastException。

pl = (PaymentsLocal)i.next();

这是因为i.next()返回集合类型的对象。