gpt4 book ai didi

Java Lambda 循环推理

转载 作者:搜寻专家 更新时间:2023-11-01 03:49:58 27 4
gpt4 key购买 nike

我对 Java Lambda 表达式有疑问。我正在使用 Spring 4、JdbcTemplate、Java 8。Intellij IDEA 显示“循环推理”。它是什么以及如何修复它?感谢您的关注。

@Override
public User getUser(long id) {
return jdbcTemplate.query("SELECT * FROM user WHERE id = ?",
ps -> {
ps.setLong(1, id);
},
(rs, rowNum) -> {
return new User(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getLong(4), rs.getBoolean(5));
});
}

enter image description here

已解决此函数返回列表,而不是用户。正确的功能是这样的:

@Override
public User getUser(long id) {
return jdbcTemplate.query("SELECT * FROM user WHERE id = ?",
ps -> {
ps.setLong(1, id);
},
(rs, rowNum) -> {
return new User(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getLong(4), rs.getBoolean(5));
}).get(0);
}

最佳答案

@Override
public User getUser(long id) {
return jdbcTemplate.query("SELECT * FROM user WHERE id = ?",
ps -> {
ps.setLong(1, id);
},
(rs, rowNum) -> {
return new User(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getLong(4), rs.getBoolean(5));
}).stream().findFirst().orElse(null);
}

或者您也可以使用 .findAny 代替 findFirst。

关于Java Lambda 循环推理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31310650/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com