我有 list List<Long> list
,其中包含:[160774, 7212775] 和 Long id = 7212775
.我需要检查列表是否包含值为 id
的元素.怎么做?遗憾list.contains(id)
返回 false
就我而言。
我就是这样使用它的:
@RequestMapping("/case/{id}")
public String openCase(@PathVariable("id") Long id) {
log.debug(caseDAO.findAllCasesId()); // [160774, 7212775]
log.debug(id); // 7212775
if(caseDAO.findAllCasesId().contains(id)) {
return "case";
} else {
return "404";
}
}
DAO 的一部分(Hibernate,但这里是原生 sql):
public List<Long> findAllCasesId() {
String sql = "select id from cases";
SQLQuery query = getSession().createSQLQuery(sql);
return query.list();
}
已解决
问题出在 caseDAO.findAllCasesId()
,返回列表 Object
, 不是 Long
的列表.我通过以下方式更正了这一点:
SQLQuery query = getSession().createSQLQuery(sql).addScalar("id", Hibernate.LONG);
非常感谢:Nayuki Minase
最佳答案
当自动装箱时,您需要确保用 L 对文字进行后缀,即 Long id = 7212775L
才能正常工作。
关于java - 如何检查 List<Long> 是否包含一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7113715/