一次踩坑记录

在使用org.springframework.beans.BeanUtils.copyproperty()复制对象的属性值的时候,一个为null的值,复制后的新对象的属性有值了,查看变量值的时候,发现是把之前对象的值赋值给了新对象(相同的对象引用是误导定位问题的主要因素)。

源对象:

新对象:

注意此时的id为182,对应值的引用是@13502

新对象的属性值来源:

这个id是259,对应的值的引用也是@13502

为了找原因,打断点进BeanUtils.copyproperty()方法,在赋值的时候,发现属性值和get方法获取到的数据不一致

找到get方法

最后找到get方法,的确是被重写了。

 

原因:因为该项目的setter、getter方法都用lombok插件自动生成,所以没想到重写方法的情况。后来了解到,之所以重写get方法,是为了兼容旧数据。对于这种情况,我一般的做法是:如果这个实体类的用途,还有除了展示数据外的用途,最好还是把兼容旧数据的逻辑写在业务代码里。

 

### 常见问题及解决方法 #### 无法打开Anaconda Navigator (Anaconda3) 当遇到此情况时,可能是由于路径设置不当或是某些依赖库缺失所引起。尝试通过命令行运行`anaconda-navigator`来启动Navigator可以提供更详细的错误信息帮助定位问题[^1]。 对于Windows用户而言,如果是在安装后首次尝试开启却失败,则可能是因为环境变量未被正确添加到系统中。此时应确认Anaconda的安装选项里选择了将路径加入环境变量这一项;另外重启计算机也是一个简单有效的措施让新的环境变量生效[^2]。 #### CondaHTTPError: HTTP 000 CONNECTION FAILED for URL 此类网络连接类错误表明Conda试图访问远程服务器但是未能成功建立联系。这通常是短暂性的网络波动造成的,在几分钟后再试一次往往能够解决问题。除此之外还可以考虑更改镜像源至国内站点如清华TUNA镜像加速下载速度并提高稳定性: ```bash conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ conda config --set show_channel_urls yes ``` 上述命令会向渠道列表追加一个新条目,并启用显示频道网址的功能方便调试[^4]。 #### anaconda ImportError: cannot import name 'HTTPSHandler' 该异常多发生在不同版本间的兼容性冲突之上。“six”模块是一个支持Python 2和3之间代码转换的小型库,而其内部结构的变化可能会引发这类导入错误。更新`six`以及相关联的软件包可作为初步处理手段: ```bash conda update six urllib3 chardet certifi idna requests ``` 以上指令旨在同步升级一系列涉及网络请求处理的基础组件以确保它们处于最新状态从而减少潜在矛盾点。 #### Anaconda 加入系统变量 CMD命令提示符闪退打不开 VSCode 中无法启动 Conda 环境 这些现象均指向了相似的根本原因——即环境配置出现了偏差。具体来说就是PATH等重要环境参数丢失或者是存在重复定义干扰到了正常解析流程。建议重新执行Anaconda Installer并且勾选有关自动调整环境变量的相关选项完成修复工作。与此同时注意清理旧有的残留记录以免造成混淆。 此外,针对VS Code集成开发环境下的特殊状况,还需额外验证扩展插件是否已经按照官方文档说明进行了适当设定,特别是关于解释器选择的部分要特别留意确保指定了正确的虚拟环境位置[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值