JAVA异常:java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.entity.Advertisem
publicStringfind_ad()throwsException{//action中的System.out.println("进入find_add");this....
public String find_ad() throws Exception {//action中的
System.out.println("进入find_add");
this.setCurrentPage(1);//设当前页为1
this.setPageSize(5);//设置每页显示条数,这两个当作参数传进去查出list
List list=advertisementDao.PageList(this.getCurrentPage(),this.getPageSize());
System.out.println(list.size());
/////////////////////下面的for是测试用来在后台输出的advertisement对象getAdName
for(int i=0;i<list.size();i++){
advertisement=(Advertisement)list.get(i);//在这一行发生错误???
System.out.println(advertisement.getAdName());
}
ActionContext.getContext().getSession().put("adlist", list);
//查询总条数
this.setTotalRows(advertisementDao.countRow());
//调用分页
pagination();
return SUCCESS;
}
/////////////////////////////DAO
public List PageList(int pageIndex,int pageSize){
System.out.println("进入PageList");
String sql="select top "+pageSize+" * from advertisement where adId not in (select top "+(pageIndex-1)*pageSize+" adId from advertisement)";
System.out.println("进入PageList2");
SessionFactory sf=this.getSessionFactory();
System.out.println("sf:"+sf==null);
Session session=sf.openSession();
System.out.println("session:"+session==null);
Transaction tx=session.beginTransaction();
List lt=session.createSQLQuery(sql).list();
tx.commit();
session.close();
}
return lt;
}
问题:在advertisement=(Advertisement)list.get(i);这里报下面的错误
,取出来的值在前台页面都是空的。错误:java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.entity.Advertisement 展开
System.out.println("进入find_add");
this.setCurrentPage(1);//设当前页为1
this.setPageSize(5);//设置每页显示条数,这两个当作参数传进去查出list
List list=advertisementDao.PageList(this.getCurrentPage(),this.getPageSize());
System.out.println(list.size());
/////////////////////下面的for是测试用来在后台输出的advertisement对象getAdName
for(int i=0;i<list.size();i++){
advertisement=(Advertisement)list.get(i);//在这一行发生错误???
System.out.println(advertisement.getAdName());
}
ActionContext.getContext().getSession().put("adlist", list);
//查询总条数
this.setTotalRows(advertisementDao.countRow());
//调用分页
pagination();
return SUCCESS;
}
/////////////////////////////DAO
public List PageList(int pageIndex,int pageSize){
System.out.println("进入PageList");
String sql="select top "+pageSize+" * from advertisement where adId not in (select top "+(pageIndex-1)*pageSize+" adId from advertisement)";
System.out.println("进入PageList2");
SessionFactory sf=this.getSessionFactory();
System.out.println("sf:"+sf==null);
Session session=sf.openSession();
System.out.println("session:"+session==null);
Transaction tx=session.beginTransaction();
List lt=session.createSQLQuery(sql).list();
tx.commit();
session.close();
}
return lt;
}
问题:在advertisement=(Advertisement)list.get(i);这里报下面的错误
,取出来的值在前台页面都是空的。错误:java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.entity.Advertisement 展开
8个回答
展开全部
List<?> offlist=Sys_Pagination.getAaData();
List<Map> list=new ArrayList<Map>();
for(int i=0;i<offlist.size();i++){
Object[] obj = (Object[])offlist.get(i);
Map<String,Object> map=new HashMap<String,Object>();
map.put("maintype", obj[0]);
map.put("sectype", obj[1]);
map.put("suppliesname", obj[2]);
map.put("unit", obj[3]);
map.put("inventory", obj[4]);
map.put("sunQuant", obj[5]);
map.put("sunOutQuant", obj[6]);
map.put("appQuant", obj[7]);
list.add(map);
}
Sys_Pagination.setAaData(list);
List<Map> list=new ArrayList<Map>();
for(int i=0;i<offlist.size();i++){
Object[] obj = (Object[])offlist.get(i);
Map<String,Object> map=new HashMap<String,Object>();
map.put("maintype", obj[0]);
map.put("sectype", obj[1]);
map.put("suppliesname", obj[2]);
map.put("unit", obj[3]);
map.put("inventory", obj[4]);
map.put("sunQuant", obj[5]);
map.put("sunOutQuant", obj[6]);
map.put("appQuant", obj[7]);
list.add(map);
}
Sys_Pagination.setAaData(list);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
advertisement=(Advertisement)list.get(i);
list.get(i) 取出来的不是 Advertisement
你最好这么改
if(list.get(i) instance of Advertisement){
advertisement=(Advertisement)list.get(i);
}
list.get(i) 取出来的不是 Advertisement
你最好这么改
if(list.get(i) instance of Advertisement){
advertisement=(Advertisement)list.get(i);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在DAO层用的是createSQLQuery啊,你在List lt=session.createSQLQuery(sql).list();这句下断点,F6单步走一步,再看lt里面的内容,那可以说是一个字符串数组了,不能直接转换成对象的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我现在也遇到这个类似的问题 报的也是这个错误..
我是一个这样的问题...
在A类中我查询出一个虚拟的结果集....但这个结果集中的一些列不是A中的属性...
现在我要把这个结果集 存在B类中....那这个list该如何和B类对应上?
我是一个这样的问题...
在A类中我查询出一个虚拟的结果集....但这个结果集中的一些列不是A中的属性...
现在我要把这个结果集 存在B类中....那这个list该如何和B类对应上?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询