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

新手上路,请多包涵

即使我正在将 Object 转换为 int,但出现此异常……

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

这是我的休眠代码:

 @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();
}

现在我将这个 Object 转换为 int

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

我正在将 Object 转换为 Integer

原文由 SWEE 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 850
2 个回答

利用:

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

反而。

.intValue() 方法在类 Number 中定义,其中 Long 扩展。

原文由 fge 发布,翻译遵循 CC BY-SA 3.0 许可协议

结果的数量(理论上)可以大于整数范围。我会重构代码并改用返回的 long 值。

原文由 Jeroen Kransen 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题