我有一个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
。 - Brian Roachjava.math.BigInteger
类的实例不是java.lang.Long
类的实例。 - Luiggi MendozaCollections.max(dynamics))
是BigInteger
,而你正在尝试将其转换为 long 类型,请尝试将其转换为BigInteger
,然后使用longValue()
方法。 - user902383List<Long>
。@Tony,请检查spyPathService.getDynamics()
的返回类型。假设你的错误确实来自这些代码行,我猜测从这段代码来看,spyPathService.getDynamics()
实际上返回了一个包含至少一些BigInteger
的列表。 - StormeHawke