You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Java 8 Lambda表达式替换Spring JdbcTemplate中的RowMapper匿名类

用Java 8 Lambda替换JdbcTemplate的匿名RowMapper

嘿,这事儿超简单!因为RowMapper是个函数式接口(只有一个抽象方法mapRow),刚好适配Java 8的Lambda表达式语法,直接替换就能让代码清爽不少。

改造后的完整代码

List<PersonDTO> personList = jdbcTemplate.query(query, (rs, rowNumber) -> {
    PersonDTO personDTO = new PersonDTO();
    personDTO.setPerId(rs.getString("COL_ONE"));
    personDTO.setIdTypeCd(rs.getString("COL_TWO"));
    return personDTO;
});

关键说明

  • 直接省略了匿名类的new RowMapper<PersonDTO>() { @Override public PersonDTO mapRow(...) }冗余部分,用(rs, rowNumber)对应原方法的两个参数——编译器能自动推断参数类型,所以不用手动写ResultSet rs, int rowNumber
  • 大括号里的逻辑和原来匿名类的mapRow方法体完全一致,不需要做任何修改
  • 如果你的业务逻辑足够简单(比如一行就能完成对象构建与返回),还可以进一步简化成单行Lambda(去掉大括号和return),不过这里多行写法的可读性更强,更推荐保留

改造后代码既简洁又完全保留原有功能,完美适配Java 8及以上版本的编码风格。

内容的提问来源于stack exchange,提问作者Sumit Ghosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:39:12