在日常生活中,我们会有这种取值,不为空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);