您的位置首页生活快答

java.lang.Long cannot be cast to java.lang.String

java.lang.Long cannot be cast to java.lang.String

的有关信息介绍如下:

java.lang.Long cannot be cast to java.lang.String

一、原因:

1)在Hibernate2.0之前版本list.get(0)返回的是Integer类型.

2)在Hibernate3.0以后版本list.get(0)返回的是Long类型,不可以由Long型强转成Integer类型.

3)Integer属于不可更改类型,而且Long和Integer没有任何继承关系。

二、例如:

注: super.pageQuery(hql,null,null,null);调用了一个父类的一个封装方法.查询时候使用

List list = this.getHibernateTemplate().executeFind(new HibernateCallback(){});

public Integer getUsersCount() {

String hql = "select count(*) from Users";

List list = super.pageQuery(hql, null, null, null);

return (Integer) list.get(0);

}

三、解决办法:

public Integer getUsersCount() {

String hql = "select count(*) from Users";

List list = super.pageQuery(hql, null, null, null);

Number num = (Number) list.get(0);

return num.intValue();

}

注:java.lang.Number是Integer,Long的父类.