java中函数式编程,Consumer类

在 Java 中,Consumer 接口是函数式接口,它定义了一个接收一个参数并且不返回任何结果的操作。Consumer 接口通常用于对一个对象进行操作,例如打印对象、修改对象属性等。

以下是 Consumer 接口的简单示例用法:

import java.util.function.Consumer;

public class Main {
    public static void main(String[] args) {
        Consumer<String> consumer = (str) -> System.out.println(str);
        
        consumer.accept("Hello, World!");
    }
}

在上面的示例中,我们创建了一个 Consumer 对象,用 lambda 表达式实现了 accept 方法,这个方法接收一个字符串参数并打印出来。最后,我们调用 accept 方法传入字符串 “Hello, World!” 来执行这个操作。

 

实用案例

对象转换BeanUtils,在转换的同时,还能继续进行赋值操作,案例用使用的是hutool的BeanUtil

public static <T> T toBean(Object source, Class<T> targetClass) {
return BeanUtil.toBean(source, targetClass);
}

public static <T> T toBean(Object source, Class<T> targetClass, Consumer<T> peek) {
T target = toBean(source, targetClass);
if (target != null) {
peek.accept(target);
}
return target;
}

使用教程

        ErpSaleOutDO saleOut = BeanUtils.toBean(createReqVO, ErpSaleOutDO.class, in -> in
                .setNo(no).setStatus(ErpAuditStatus.PROCESS.getStatus()))
                .setOrderNo(saleOrder.getNo()).setCustomerId(saleOrder.getCustomerId());

 

posted @ 2024-03-08 17:57  星期三q  阅读(381)  评论(0)    收藏  举报