首页 > 其他分享 >忽略空属性复制对象

忽略空属性复制对象

时间:2024-03-22 09:12:31浏览次数:19  
标签:java String Object 忽略 source 复制 beans import 属性

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;

import java.util.HashSet;
import java.util.Set;


public class BeanUtil {

    /**
     * 忽略空属性复制对象
     * @param source:源对象
     * @param target:目标对象
     */
    public static void copyProperties(Object source, Object target) {
        BeanUtils.copyProperties(source, target, getNullPropertyNames(source));
    }

    private static String[] getNullPropertyNames(Object source) {
        final BeanWrapper src = new BeanWrapperImpl(source);
        java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors();

        Set<String> emptyNames = new HashSet<>();
        for (java.beans.PropertyDescriptor pd : pds) {
            Object srcValue = src.getPropertyValue(pd.getName());
            if (srcValue == null || ((srcValue instanceof String) && StringUtils.isEmpty((String)srcValue)))
                emptyNames.add(pd.getName());
        }
        String[] result = new String[emptyNames.size()];
        return emptyNames.toArray(result);
    }
}

标签:java,String,Object,忽略,source,复制,beans,import,属性
From: https://www.cnblogs.com/xiaojianwen/p/18088665

相关文章

  • 网页禁止copy(复制)的解决方案
    当我们浏览些网页时回遇到一些网页是不能copy的,这样的体验就一点都友好。接下来就介绍一下如何解除这种限制!首先我们先打开调试窗口---->Elements---->EventListeners---->找到copy事件,把他干掉就......
  • CSS属性
    目录内部样式使用style标签把CSS嵌入到HTML中外部样式创建一个单独CSS文件(.css)通过HTML中的link标签,把CSS文件引过来内联样式直接在元素里面使用style属性把对应的CSS内容写进来选择器标签选择器直接对div进行操作类选择器给特定div命名再操作id选择器后代选择......
  • 【HarmonyOS NEXT】气泡默认颜色和API 10不同,设置popupColor属性无法修改气泡颜色
    ​ 【关键字】HarmonyOSNEXT、气泡提示、Popup、popupColor【问题背景】API10接口的气泡颜色是‘#4d4d4d’的,但是使用API11后,气泡颜色变成透明的了,然后通过popupColor属性设置其他颜色都无效。【API10的效果】​【API11的效果】​在PopupOptions中设置popupColor:......
  • 将字段转驼峰,获取对象中的属性值
    //获取对象中属性的值publicStringgetFieldValue(StringattrName)throwsNoSuchMethodException,InvocationTargetException,IllegalAccessException{//转驼峰StringstandardField=getStandardField(attrName.toLowerCase());......
  • vue2/3 - element表格组件el-table实现懒加载树型(上下级)数据、默认展开和隐藏层级,支
    效果图在vue2、vue3项目开发中,使用element饿了么组件库,实现Table表格组件动态懒加载表格数据,可以决定是否自动展开所有2级或3级,也可以点击加载下级数据,可搭配表格的增删改查,数据变化后自动更新列表不会破坏树状的展开和折叠结构。提供详细示例代码,一键复制运行查看效果,稍......
  • 3、模板渲染及对象属性访问
    代码如下:fromflaskimportFlask,render_templateapp=Flask(__name__)#定义类用于参数传递classUser:"""对于参数age是后续加上去的,因为前期已经对于类进行过实例化了,所以在增加参数时,最好给上一个默认值.不然之前的写法都要重新修改."""......
  • Newtonsoft.Json/Json.NET忽略序列化时的意外错误
    在.NET中Newtonsoft.Json(Json.NET)是我们常用来进行Json序列化与反序列化的库。而在使用中常会遇到反序列化Json时,遇到不规则的Json数据解构而抛出异常。Newtonsoft.Json 支持序列化和反序列化过程中的错误处理。允许您捕获错误并选择是处理它并继续序列化,还是让错误冒泡并抛......
  • C语言——复制字符串
    题目描述:有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。输入:数字n,一行字符串,数字m。输出:从m开始的子串。代码如下:代码一:#include<stdio.h>#include<stdlib.h>intmain(){intn,i=0,j,m;charc[20];......
  • Websoket 客户端忽略证书验证
    一、方法一<dependency> <groupId>org.java-websocket</groupId> <artifactId>Java-WebSocket</artifactId> <version>1.5.2</version></dependency>packagecom.neo.websoket;importorg.java_websocket.client.WebSocket......
  • 前端学习-vue学习007-计算属性+Class 与 Style 绑定
    官方教程链接Class与Style绑定Vue专门为class和style的v-bind用法提供了特殊的功能增强<span:class="{done:item.done}">{{item.text}}</span>如果item.done是true,以上代码实际为<span:class="done">{{item.text}}</span>如果item.done是false,......