BeanUtils.copyProperties使用
BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。
注意:属性复制,不同jar中的方法,用法不一样。
1、package org.springframework.beans;中的
BeanUtils.copyProperties(A,B);
是A中的值付给B
2、package org.apache.commons.beanutils;(常用)
BeanUtils.copyProperties(A,B);
是B中的值付给A
/** * 实体类类型转化 * @param contents * @param clazz * @param <I> * @param <T> * @return * ********************************** * import org.springframework.beans.BeanUtils;BeanUtils.copyProperties(A,B);是A中的值付给B * import org.apache.commons.beanutils.BeanUtils;BeanUtils.copyProperties(A,B);是B中的值付给A * * ********************************** */ public static <I, T> List<I> convert(List<T> contents, Class<I> clazz) { List<I> infos = new ArrayList<>(); for (T domain : contents) { I info = null; try { info = clazz.newInstance(); BeanUtils.copyProperties(info, domain); } catch (Exception e) { log.info("转换数据失败", e); throw new RuntimeException("转换数据失败"); } if(info != null) { infos.add(info); } } return infos; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构