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

即使我将Object转换为int,但发生此exception……

实际上我的Hibernate-JPA方法是返回Object然后我将该Object转换为int …

听到我的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(); } 

现在我将此Object转换为int ..

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

我正在将Object转换为Integer …

使用:

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

代替。

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

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