【发布时间】:2013-08-24 01:39:14
【问题描述】:
我有List<Long> dynamics。我想使用Collections 获得最大结果。这是我的代码:
List<Long> dynamics=spyPathService.getDynamics();
Long max=((Long)Collections.max(dynamics)).longValue();
这是我的getDynamics:
public List<Long> getDynamics() {
Session session = null;
session = this.sessionFactory.getCurrentSession();
Query query = session
.createSQLQuery("SELECT COUNT(*) FROM SpyPath WHERE DATE(time)>=DATE_SUB(CURDATE(),INTERVAL 6 DAY) GROUP BY DATE(time) ORDER BY time;");
List<Long> result = query.list();
return result;
}
现在我收到了java.math.BigInteger cannot be cast to java.lang.Long。怎么了?
【问题讨论】:
-
我想说你正在尝试将
BigInteger转换为Long。 -
因为
java.math.BigInteger类实例不是java.lang.Long类的实例。 -
如果您需要更多帮助,您将需要提供更多代码。也许错误指向的行? getDynamics() 返回什么类型?
-
你在你的问题中有你的答案,我假设这个
Collections.max(dynamics))是BigInteger,你正在尝试将它转换为长,尝试将它转换为BigInteger,然后使用@987654334 @方法 -
好吧,他已经清楚地将他的动态列表标记为
List<Long>。 @Tony 检查spyPathService.getDynamics()的返回类型。假设您的错误实际上来自这些代码行,我会从这段代码中猜测 spyPathService.getDynamics() 实际上返回的 List 至少包含一些BigIntegers
标签: java hibernate collections long-integer biginteger