如何检查 List 是否包含值?

2024-03-11

我有清单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();
}

SOLVED

问题在于caseDAO.findAllCasesId(),返回列表Object,不是列表Long。我通过以下方式纠正了这个问题:

SQLQuery query = getSession().createSQLQuery(sql).addScalar("id", Hibernate.LONG);

非常感谢:水濑奈雪 https://stackoverflow.com/users/839689/nayuki-minase


自动装箱时,您需要确保在文字后添加 L,即Long id = 7212775L为了这个工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查 List 是否包含值? 的相关文章

随机推荐