Hutool BeanUtils.copyProperties的四种用法 空不拷贝/忽略拷贝/空不和忽略拷贝/全拷贝

news2024/11/23 12:43:34

关注公众号:”奇叔码技术“
回复:“java面试题大全”或者“java面试题”
即可领取资料

一、Hutool BeanUtils.copyProperties的四种用法 空不拷贝/忽略拷贝/空不和忽略拷贝/全拷贝

1、第一种用法: BeanUtils.copyProperties(三个参数) 不为空则拷贝,空则用旧值

public static void main(String[] args) {
        Person person = new Person("sdfsd",null);
        Person person2 = new Person("嘤嘤嘤",22);


        CopyOptions options = CopyOptions.create()
                .setIgnoreNullValue(true)  // 忽略源对象属性为空的情况
                .setIgnoreError(true);     // 忽略复制过程中出现的错误

        BeanUtil.copyProperties(person, person2, options);
        System.out.println(person);
        System.out.println(person2);
}

结果:

Person(name=sdfsd, age=null)
Person(name=sdfsd, age=22)

2、第二种用法:BeanUtils.copyProperties(三个参数) 指定哪个属性值忽略拷贝,即保留原来的值。

    public static void main(String[] args) {
        Person person = new Person("sdfsd",3344);
        Person person2 = new Person("嘤嘤嘤",22);


        CopyOptions options = CopyOptions.create()
                .setIgnoreProperties("age");  // 忽略"age"属性的拷贝

        BeanUtil.copyProperties(person, person2, options);
        System.out.println(person);
        System.out.println(person2);
    }

结果:

Person(name=sdfsd, age=3344)
Person(name=sdfsd, age=22)

3、第三种用法:BeanUtils.copyProperties(三个参数) 不为空则拷贝,空则用旧值 并且 指定哪个属性值忽略拷贝,即保留原来的值。

    public static void main(String[] args) {
        Person person = new Person("sdfsd",null);
        Person person2 = new Person("嘤嘤嘤",22);


        CopyOptions options = CopyOptions.create()
                .setIgnoreNullValue(true)  // 忽略源对象属性为空的情况
                .setIgnoreError(true)     // 忽略复制过程中出现的错误
                .setIgnoreProperties("name");  // 忽略"name"属性的拷贝

        BeanUtil.copyProperties(person, person2, options);
        System.out.println(person);
        System.out.println(person2);
    }

结果:

Person(name=sdfsd, age=null)
Person(name=嘤嘤嘤, age=22)

4、第四种用法:BeanUtils.copyProperties(两个参数) 全都会拷贝,空值也拷贝

    public static void main(String[] args) {
        Person person = new Person("sdfsd",null);
        Person person2 = new Person("嘤嘤嘤",22);


        BeanUtil.copyProperties(person, person2);
        System.out.println(person);
        System.out.println(person2);
    }

结果:

Person(name=sdfsd, age=null)
Person(name=sdfsd, age=null)

二、Person类和依赖:

import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class Person{
    private String name;
    private Integer age;
}
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.7.5</version>
</dependency>

三、最后!!!

点赞

评论

关注我

END
下篇来临!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/826040.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数组指针

数组指针的定义 1.数组指针是指针还是数组&#xff1f; 指针。 int a 10;int* p &a;//指向整型数据的指针 char b w;char* q &b;//指向字符变量的指针 所以数组指针应该是指向数组的指针。 2.数组指针应该怎么定义&#xff1f; int arr[10] { 0 };int(*p)[10] …

【python爬虫】获取某一个网址下面抓取所有的a 超链接下面的内容

import requests as rq from bs4 import BeautifulSoup as bs import re# rooturl是传的是我需要查询和抓取的一个网址&#xff0c;可以是html js 等 def gethtml(rooturl, encoding"utf-8"):#默认解码方式utf-8response rq.get(rooturl)response.encoding encodin…

Dockerfile构建httpd镜像(yum方式)

Dockerfile构建httpd镜像&#xff08;yum方式&#xff09; 1、建立工作目录 [rootdocker ~]# mkdir httpd [rootdocker ~]# cd httpd 2、编写Dockerfile文件 [rootdocker httpd]# vim Dockerfile FROM centos:7 MAINTAINER Crushlinux <crushlinux163.com>RUN yum -…

2023最新AI艺术二维码制作软件教程【软件工具+教程】下载

2023最新AI艺术二维码傻瓜式生成教程&#xff0c;不需要市面上繁琐的安装步骤和显卡的配置要求&#xff01;我看了一眼市面上的要么只有视频教程&#xff0c;无工具纯纯牛马用来扯淡了。 要么就是安装繁琐&#xff0c;配置要求还高&#xff01; 这期教程教大家怎么傻瓜式制作…

java在idea开发工具中测试Spring Boot上线后临时变量是否可用

上文 java Spring Boot上线运维 启动jar时控制台调整零时变量 我们亲手在项目部署之后 调试了临时变量 但是 目前就还有一个问题 这些指令一般是运维人员去操作的 但是 我们作为开发人员 要保证这些临时变量都是可操作的 或者 不能操作也要提前说清楚 毕竟项目是你写的 你也要负…

QT充当客户端模拟浏览器等第三方客户端对https进行双向验证

在 ssl单向证书和双向证书校验测试及搭建流程 文章中&#xff0c;已经做了基于https的单向认证和双向认证&#xff0c;&#xff0c;&#xff0c; 在进行双向认证时&#xff0c;采用的是curl工具或浏览器充当客户端去验证。 此次采用QT提供的接口去开发客户端向服务器发送请求&a…

安装skywalking并集成到微服务项目

文章目录 一、前言二、介绍1. 架构 三、安装skywalking服务端四、启动skywalking服务端五、微服务项目开发注册中心网关服务商品服务订单服务支付服务测试 六、下载java客户端七、微服务集成skywalking客户端1. idea启动2. 命令行启动3. 集成效果 八、skywalking客户端配置1. 配…

Java版本spring cloud + spring boot企业电子招投标系统源代码 tbms

&#xfeff;功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&…

Nginx特性应用及载装

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上nginx的并发能力在同类型的网页服务器中表现较好&#xff0c;中国大陆使用nginx的网站有&#xff1a;网易、腾讯、阿里等。 …

19.Netty源码之粘包/拆包

本节课开始我们将学习 Netty 通信过程中的编解码技术。 编解码技术这是实现网络通信的基础&#xff0c;让我们可以定义任何满足业务需求的应用层协议。 在网络编程中&#xff0c;我们经常会使用各种网络传输协议&#xff0c;其中 TCP 是最常用的协议。 我们首先需要了解的是 TC…

手机pdf转换成word免费版?看看这几个转换方法

手机pdf转换成word免费版&#xff1f;在当今信息化的时代&#xff0c;PDF文档已经成为公文交流、资料分享、学术论文等领域中最常用的文件格式之一。然而&#xff0c;PDF文档的固化特性也使其在文本编辑、内容修改等方面存在不便。因此&#xff0c;将PDF文档转换为Word文档已成…

离线部署 python 环境

本机 启动命令行 保存本机python安装的库 pip3 freeze > packet.txt。这样可以在当前目录下生成packet.txt。注意不要随意删除其中行&#xff0c;除非你清楚依赖项 获取库文件&#xff0c;pip3 download -r packet.txt -d ./pip_packages。从当前环境的网络中下载packet.…

springboot项目如何自动重启(使用Devtools检测修改并自动重启springboot)

1. 问题&#xff1a; 我们在项目开发阶段&#xff0c;可能经常会修改代码&#xff0c;修改完后就要重启Spring Boot。经常手动停止再启动&#xff0c;比较麻烦。 所以我们引入一个Spring Boot提供的开发工具&#xff1b; 只要源码或配置文件发生修改&#xff0c;Spring Boot应用…

突破游戏行业天花板,“技术外溢”成趋势

文 | 螳螂观察 作者 | 余一 受游戏版号发放的“放缓”、人口结构的调整&#xff0c;过去两年国内游戏行业过得并不算好。前不久据相关机构发布的数据显示&#xff0c;2022年中国游戏市场实际销售收入2658.84亿元&#xff0c;同比减少306.29亿元&#xff0c;下降10.33%。且游戏…

Maven-学习笔记

文章目录 1. Maven简介2.Maven安装和基础配置3.Maven基本使用4.Maven坐标介绍 1. Maven简介 概念 Maven是专门用于管理和构建Java项目的工具 主要功能有: 提供了一套标准化的项目结构提供了一套标准化的构建流程&#xff08;编译&#xff0c;测试&#xff0c;打包&#xff0c;…

Vulmap和struts-scan联合使用

介绍 Vulmap 是一款 web 漏洞扫描和验证工具, 可对 webapps 进行漏洞扫描, 并且具备漏洞利用功能, 目前支持的 webapps 包括 activemq, flink, shiro, solr, struts2, tomcat, unomi, drupal, elasticsearch, fastjson, jenkins, nexus, weblogic, jboss, spring, thinkphp Vul…

尝试多数据表 sqlite

C 唯一值得骄傲的地方就是 通过指针来回寻址 &#x1f602; 提高使用的灵活性 小脚本buff 加成

【基础理论】了解点过程

Maximum tsunami wave height generated by the 16 Sept. 2015 Chile earthquake, from the International Tsunami Information Center. Posted by Austin Elliott 一、说明 在这个世界上&#xff0c;会发生许多事件&#xff0c;其趋势可能遵循一种模式。在这篇博客中&#…

手把手教你制作春节微信集卡抽奖活动

春节是中国传统的重要节日&#xff0c;商家们纷纷希望能够通过一系列的营销活动吸引更多的用户参与。而微信集福字游戏活动成为了一个赢得春节营销的关键。在本文中&#xff0c;我们将介绍如何通过第三方平台/工具&#xff0c;如乔拓云平台&#xff0c;来注册并登录后台&#x…

漏洞复现--原型链污染、沙箱逃逸绕过

目录 一、原型链污染 1.prototype和__proto__区别&#xff1f;&#xff1f;&#xff1f; 2.原型链污染是什么&#xff1f;&#xff1f;&#xff1f; 3.哪些情况原型链会被污染&#xff1f;&#xff1f;&#xff1f; 4.原型链污染例题 二、沙箱逃逸绕过 1.如何实现沙箱逃逸…