在日常生活中,我们会有这种取值,不为空set值的操作 ,但是这种操作方法就很繁琐

String feeType = request.getParameter("feeType");
        if (StrUtil.isNotBlank(feeType)) {
            userListDto.setFeeType(feeType);
        }

        String flowType = request.getParameter("flowType");
        if (StrUtil.isNotBlank(flowType)) {
            userListDto.setFlowType(Integer.valueOf(flowType));
        }

        String sort = request.getParameter("sort");
        if (StrUtil.isNotBlank(sort)) {
            userListDto.setSort(sort);
        }

可以试下下面的封装好的方法

private <T> void setIfNotBlank(T value, BiConsumer<String, T> setter) {
    if (StrUtil.isNotBlank(value)) {
        setter.accept(value);
    }
}

调用时 ,之前的4行代码,秒变1行代码,甚至可以精简为1行代码, nice!

String feeType = request.getParameter("feeType");
setIfNotBlank(feeType, userListDto::setFeeType);

String flowType = request.getParameter("flowType");
setIfNotBlank(flowType, (value) -> userListDto.setFlowType(Integer.valueOf(value)));

String sort = request.getParameter("sort");
setIfNotBlank(sort, userListDto::setSort);