我有列表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";
}
}
Run Code Online (Sandbox Code Playgroud)
一块DAO(Hibernate,但原生sql在这里):
public List<Long> findAllCasesId() {
String sql = "select id from cases";
SQLQuery query = getSession().createSQLQuery(sql);
return query.list();
}
Run Code Online (Sandbox Code Playgroud)
解决了
问题caseDAO.findAllCasesId()在于,返回列表Object,而不是列表Long.我纠正了这个:
SQLQuery query = getSession().createSQLQuery(sql).addScalar("id", Hibernate.LONG);
非常感谢:Nayuki Minase
在eclipse helios上运行以下代码:
public static void main(String[] args) {
List<Long> list = new ArrayList<Long>();
list.add(160774L);
list.add(7212775L);
System.out.println(list.contains(7212775L);
}
Run Code Online (Sandbox Code Playgroud)
输出:
true
Run Code Online (Sandbox Code Playgroud)
你做错了什么
System.out.println(list.contains(7212775));
Run Code Online (Sandbox Code Playgroud)
问题是您的列表采用Long对象,并且您正在搜索文字.
| 归档时间: |
|
| 查看次数: |
29436 次 |
| 最近记录: |