`

项目经验之对象copy

    博客分类:
  • JAVA
阅读更多

在做项目时遇到需要copy两个对象之间的属性值,但是有源对象有null值,在使用BeanUtils来copy时null值会覆盖目标对象的同名字段属性值,然后采用以下方法找到null值字段,然后忽略:

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

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

    public static void copyPropertiesIgnoreNull(Object src, Object target){
        BeanUtils.copyProperties(src, target, getNullPropertyNames(src));
    }
分享到:
评论

相关推荐

    PROJ_CRM - Copy

    此外,参与这样的项目还能增强团队协作、版本控制(如Git)和项目管理(如JIRA)的经验,这些都是现代软件开发不可或缺的技能。因此,这个项目对于任何希望在JAVA开发领域深化理解和提升技能的人来说,都是一份宝贵...

    Pro Design Patterns in Swift copy

    同样的道理,在软件开发中,合理地运用设计模式可以在项目早期投入少量资源以减少后期可能面临的大规模重构风险。 - **Swift中的设计模式价值**:由于Swift是一种年轻但发展迅速的语言,其设计模式的应用对于构建...

    Make_Save_Copy.rar_opencv make

    在本项目中,“Make_Save_Copy.rar_opencv make”聚焦于使用C++编程语言与OpenCV库进行图像处理,包括创建、保存以及复制图像的...对于经验丰富的开发者,这个项目也可能提供了一个快速实现特定图像处理需求的模板。

    HITSZ 面向对象的软件构造实践课程项目(实现飞机大战的安卓版).zip

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全栈开发),有任何使用问题欢迎随时与我联系,我会及时为您解惑,...

    华南师范大学面向对象程序设计项目,基于Qt界面、可以生成数独,运算数独.zip

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全栈开发),有任何使用问题欢迎随时与我联系,我会及时为您解惑,...

    赋予树莓派3B机器人车语音识别控制和对象检测的控制程序。(毕设/课设/竞赛/实训/项目开发)

    嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会...

    iOS设计模式之原型设计模式

    在iOS开发中,设计模式是一种解决常见编程问题的模板,它们是经验丰富的开发者们经过长期实践总结出的最佳实践。原型模式(Prototype Pattern)是其中的一种,它的主要目的是通过克隆已有对象来创建新对象,而不是...

    email:邮件发送的简单项目 从网上copy过来的 保存下 以后备用

    【标题】中的“email:邮件发送的简单项目”暗示了这是一个关于使用Java编程语言实现电子邮件发送功能的...对于初学者,这是一个很好的实践机会,而对于有经验的开发者,这个项目可以作为一个快速发送邮件的模板或参考。

    spring框架的设计理念--copy

    ### Spring框架的设计理念与核心组件解析 #### 一、Spring框架概述 Spring作为一个全面的轻量级...通过对这些核心概念的理解,我们可以更好地利用Spring来构建复杂的应用程序,并从中汲取经验应用于自己的项目中。

    面向对象的单片机按键驱动程序-支持gpio和adc按键,具有多种事件处理方式(皆可应用在毕设/课设/大作业/实训/竞赛/项目开发

    嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会...

    韦东山老师的直播公开课:面向对象思想编写单片机程序.zip(皆可应用在毕设/课设/大作业/实训/竞赛/项目开发)

    嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会...

    FILE_COPY-and-RENAME.rar_site:www.pudn.com

    标题中的"FILE_COPY-and-RENAME.rar"暗示了这是一个关于在C++环境中实现文件复制和重命名功能的项目。从描述来看,这个压缩包包含了源代码文件,供开发者参考学习如何在C++中执行文件操作,特别是文件的复制以及...

    android平台的excel操作库,目的是实现只需要定义excel数据对应的对象即可实现excel和对象的双向序列化.zip

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全栈开发),有任何使用问题欢迎随时与我联系,我会及时为您解惑,...

    《招聘一个靠谱的iOS》面试题参考答案(上).md

    它不仅能够展现应聘者的专业能力和项目经验,还能体现其个人品质与职业态度。对于iOS开发者而言,简历中的技术栈介绍尤为重要,这包括但不限于所掌握的技术框架、参与过的项目以及个人的技术博客或GitHub上的开源...

    Objective-C经典入门源代码

    总之,Objective-C是iOS开发的重要工具,通过深入学习其语法、类、协议、内存管理和框架,结合实际项目经验,初学者可以逐步成长为熟练的iOS开发者。提供的源代码和在线课程是宝贵的资源,务必充分利用。

    Copy-of-Programming-Project

    Python的特性包括动态类型、解释型、面向对象,以及丰富的标准库,使得它成为初学者和专业开发者的首选语言之一。 在压缩包 "Copy-of-Programming-Project-main" 中,"main" 通常指的是项目的主目录或主分支,这里...

    IOS软件工程师笔试题(全选择题)【0-1年经验】.pdf

    根据提供的文件信息,文档是一份针对iOS软件工程师的笔试题,主要包含Objective-C语言的相关知识点,面向0-1年经验的应聘者。下面将详细解释各个问题和选项所涉及的知识点: 1. 包含头文件的语法:C语言中包含...

    设计模式-基于python1

    设计模式的学习应该根据个人的项目经验和需求来安排。初学者可以先了解基本概念,随着经验积累,深入理解和应用重要模式。设计模式的应用有助于提高代码质量,增强软件的可扩展性和可维护性。在实践中,可以参考优秀...

Global site tag (gtag.js) - Google Analytics