当前位置: 首页 > 面试题库 >

java.lang.ClassCastException:无法在Java 1.6中将java.lang.Long强制转换为java.lang.Integer

党博超
2023-03-14
问题内容

即使我强制Object转换为int,但是也会发生此异常…

实际上我的Hibernate-JPA方法返回了,Object然后将其转换Objectint

这是我的Hibernate代码:

@Transactional
public Object getAttendanceList(User user){

    Query query = entityManager.createQuery("select Count(ad) from AttendanceDemo ad inner join ad.attendee at  where at.user=:user",
            Long.class);
    query.setParameter("user", user);
    return query.getSingleResult();
}

现在,我将其转换Objectint

int k = (Integer) userService.getAttendanceList(currentUser);

我要转换ObjectInteger


问题答案:

采用:

((Long) userService.getAttendanceList(currentUser)).intValue();

代替。

.intValue()方法在class中定义,该类Number进行了Long扩展。



 类似资料:
  • 问题内容: 我想使用本机sql返回行数。但是控制台说我。怎么了?这是我的方法: 问题答案: 使用方法,而不是将其强制转换为: 好像返回。一种选择是强制转换为: 但是不要这样做。而是使用Nambari在评论中提供的方式。我不是Hibernate的用户,因此无法提供特定于Hibernate的解决方案。

  • 问题内容: 我有一个将对象作为输入的方法,如果输入是instanceOF Long,则将值转换为double值。下面是代码: 但是当我执行上面的代码时,我得到下面的异常: 请让我知道为什么它给了我例外。 但是,如果直接尝试将Long对象转换为double,则不会发生classCast异常。 这很混乱。 问题答案: 在JLS中找到了解释,请 参见表5.1 下的https://docs.oracle.

  • 问题内容: 我有MainActivity类,该类具有实例化ApplicationBar的方法,所有其他Activity都从此继承,因此他们可以使用此方法。 但是我也有一个MapHolder类,它必须从xml中扩展,因为它使用来显示地图。问题是如果我从不显示ApplicationBar选项卡扩展它,并且从MainActivity扩展它而不显示地图,则出现此错误: 问题答案: 您正在尝试将a强制转换为

  • 问题内容: 我遇到以下错误: 用下面的代码 我为什么不能这样做? 问题答案: 问题来自杰克逊。如果没有足够的信息反序列化到哪个类,则使用。 既然你不通知你的元素类型的杰克逊,它不知道你要反序列化到的秒。因此,它恢复为默认值。 相反,您可能可以使用,然后以比保证价格允许的方式丰富的方式进行处理。像这样:

  • 问题内容: 我最近升级了一个应用程序,使其可以使用JAVA 7和JBoss 7.1.1运行。该应用程序最初是在JAVA 5和Jboss 4.2.2上开发的。该应用程序使用hibernate3进行持久化。 在新平台上,尝试插入具有上述错误的带有CLOB字段的表时,应用程序失败。我正在使用ojdbc14.jar(后端数据库Oracle 10.2.0.3) 这些是我在jboss 7.1.1配置中验证的:

  • 问题内容: 我使用泛型创建了接口和类的层次结构,并弄乱了所有内容。 最顶级的类是AbstractJpaEntity,它由所有域实体扩展 ProductTypeDomain类类似于标记类,用于分离出几个表实体。 接口“ GenericDao”的定义 抽象类GenericDaoImpl(此类具有通用功能,例如persist,merge) 接口ProductTypeDao Spring存储库类Produ