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());
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?