Hutool的Bean转换报错未知,查看源码

3 篇文章 0 订阅

前言:
Hutool是一款开箱即用的包,可以理解为将常用的一些代码封装好,只需要调用就行的,文档齐全,且注释中文,作为源码学习也是不错的选择。
需求:
将JSON数据转成对应的Bean并根据产品文档将指定值赋值为空后返回。
问题:
使用Hutool的BeanUtil.copyProperties 报错 “未知”。
解决:
直接报错未知很苦恼,因为有好几十个字段,并不好判断到底什么出错,字段类型看了是没问题的,要是能先跳过就好了,Hutool肯定有考虑到这个情景。
于是开始查看代码,首选进入copyProperties,看到实际调用的代码copyProperties(source, target, CopyOptions.create().setIgnoreProperties(ignoreProperties));

在这里插入图片描述
看到这里我们看一下第三个参数 CopyOptions.create().setIgnoreProperties(ignoreProperties)
在这里插入图片描述
我们点进来看看create都能设置什么,发现果然可以忽略注入错误,应该可以避免我们的错误。在这里插入图片描述
怎么调用这个方法呢,我们看到当前我们在CopyOptions中,那我们先找到了其初始化
在这里插入图片描述
也就是说在create之后就可以调用了,为什么可以.set多个呢?这里用到了链式对象编程,后面会写一篇专门介绍。
所以现在我们只需要第三个参数传入的CopyOptions多设置一个忽略即可。
最终调用如下,因为最终toBean更符合自己的需求,大家可以按照实际情况选择toBean或者copyProperties。

  for (Object rows : dataObject.getJSONArray("rows")) {
                            AnalysisRows analysisRows = BeanUtil.toBean(rows, AnalysisRows.class, CopyOptions.create().setIgnoreError(true).setIgnoreNullValue(false));
                            //返回的部分字段置空
                            convertBlankField(analysisRows);
                            analysisRowsList.add(analysisRows);
                        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值