首页 > 解决方案 > 多行 lambda

问题描述

我有这个代码,它有效:

  new JdbcTemplate(new SingleConnectionDataSource(c, true))
        .query("select id, name from PLAYERS", (rs, rowNum) ->
            new Player(rs.getString("id"), rs.getString("name")) // oneline
        );

但是我现在需要在 new Player() 部分添加多个语句。我尝试将它们括在括号中,但它似乎不起作用。什么是正确的语法?

标签: javajava-8functional-interface

解决方案


我假设这个 lambda 表达式实现的功能接口的方法有一个返回值,所以在使用括号时,它应该包含一个返回语句,就像任何具有非 void 返回类型的方法一样。

new JdbcTemplate(new SingleConnectionDataSource(c, true))
    .query("select id, name from PLAYERS", (rs, rowNum) ->
        {
            return new Player(rs.getString("id"), rs.getString("name");
        }) 
    );

推荐阅读