当前位置: 首页 > 面试题库 >

如何使用springframework BeanUtils copyProperties忽略空值?

金慈
2023-03-14
问题内容

我想知道如何使用Spring Framework将属性从对象源复制到对象目的地,而忽略空值。

我实际上使用带有此代码的Apache beanutils

    beanUtils.setExcludeNulls(true);
    beanUtils.copyProperties(dest, source);

去做吧。但是现在我需要使用Spring。

有什么帮助吗?

多谢


问题答案:

您可以创建自己的方法来复制属性,而忽略空值。

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);
}

// then use Spring BeanUtils to copy and ignore null using our function
public static void myCopyProperties(Object src, Object target) {
    BeanUtils.copyProperties(src, target, getNullPropertyNames(src));
}


 类似资料:
  • 问题内容: 我正在编写此代码: 此代码忽略空行,但我也想忽略以#开头的行(注释)。 任何想法如何添加多个模式? 问题答案: 更改为 要么 如果您想在之前忽略空格。

  • 问题内容: 我正在尝试将.csv文件制作成既易于阅读又易于熊猫阅读的格式。这意味着列应该整齐地分开,以便您可以轻松识别每个值所属的列。问题是,用空格填充它会降低熊猫功能。到目前为止,我所拥有的是 如果我取出上面.csv上的所有空格,并直接将其读取,则效果很好。前两列为布尔值,其他为浮点数。但是,如果没有空格,则根本无法让人理解。当我阅读上面的.csv 这是行不通的,因为显然所有的列和字符串都包含空

  • 这是我的东西 当我得到响应时,我看到 我的看起来像 问题 如何消除中的值?

  • 读取文件已支持 windows 系统,版本号大于等于 1.3.4.1; 扩展版本大于等于 1.2.7; PECL 安装时将会提示是否开启读取功能,请键入 yes; 测试数据准备 $config = ['path' => './tests']; $excel = new \Vtiful\Kernel\Excel($config); ​ // 写入测试数据 $filePath = $excel->f

  • 问题内容: 这个问题本质上是相反的这一个 我有这样的方法: 当我加载它时,Hibernate抱怨我没有称为的属性。但是我不想要一个叫做-我不需要存储数据的属性-这仅仅是逻辑。 hibernate状态: org.hibernate.PropertyNotFoundException:在com.mycomp.myclass类中找不到空置属性的设置器… 我可以在方法中添加注释以使Hibernate忽略它

  • 和使用它的字段: 当使用Solr分析工具时,一切看起来都很好。 查询部分如下: null null