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 @   佳沃  阅读(286)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示