首页 > 解决方案 > Groovy:点击与使用

问题描述

Groovy 具有tapwith功能。它们之间有什么区别

def user = new User('john', 1)
        .tap {userService.save(it)}

def user2 = new User('Alex', 2)
        .with {userService.save(it)}

userService更新记录并返回更新的记录。

class UserService {
    public User save(final User user) {
        // save user
        return updated // Id, lastmodified and other fields can be updated.
    }
}

标签: groovy

解决方案


tapit无论是否有 return 语句,总是返回,但with将返回您显式返回的最后一个语句或语句的结果。

在您的问题中,user将始终与 new 语句创建的对象相同。但是,user2将是的返回值userService.save(it)


推荐阅读