debug小记

news/2025/1/15 10:14:23/文章来源:https://www.cnblogs.com/newbieking/p/18672298

Java

copyProperties方法

  • Spring的BeanUtils不会copy字段名相同但类型不同的属性
if (readMethod != null &&ClassUtils.isAssignable(writeMethod.getParameterTypes()[0], readMethod.getReturnType())) {try {if (!Modifier.isPublic(readMethod.getDeclaringClass().getModifiers())) {readMethod.setAccessible(true);}Object value = readMethod.invoke(source);if (!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers())) {writeMethod.setAccessible(true);}writeMethod.invoke(target, value);}catch (Throwable ex) {throw new FatalBeanException("Could not copy property '" + targetPd.getName() + "' from source to target", ex);}
}					
  • apache的PropertyUtils::copyProperties若字段名相同但类型不同会抛java.lang.IllegalArgumentException异常
  • apache的BeanUtils::copyProperties若字段名相同但类型不同会尝试转换类型后copy, Throws:ConversionException - if conversion cannot be performed successfully
// Convert the specified value to the required type and store it
if (index >= 0) {                    // Destination must be indexedvalue = convertForCopy(value, type.getComponentType());try {getPropertyUtils().setIndexedProperty(target, propName,index, value);} catch (final NoSuchMethodException e) {throw new InvocationTargetException(e, "Cannot set " + propName);}
}

String::substring(startIndex, endIndex) 方法的endIndex参数若大于字符串长度会直接抛异常, 而并非认为取剩余的所有字符

    public String substring(int beginIndex, int endIndex) {if (beginIndex < 0) {throw new StringIndexOutOfBoundsException(beginIndex);}if (endIndex > value.length) {throw new StringIndexOutOfBoundsException(endIndex);}int subLen = endIndex - beginIndex;if (subLen < 0) {throw new StringIndexOutOfBoundsException(subLen);}return ((beginIndex == 0) && (endIndex == value.length)) ? this: new String(value, beginIndex, subLen);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/869510.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebScoket-服务器客户端双向通信

WebSocket是一种在基于TCP连接上进行全双工通信的协议。 ![image-20250109103523290](https://image0219.oss-cn-hangzhou.aliyuncs.com/images/image-20250109103523290.png)WebScoket学习笔记1. 消息推送常用方式介绍 轮询 浏览器以指定的时间间隔向服务器发出HTTP请求,服务…

提升设计团队效率:如何选择合适的管理工具优化跨职能协作

一、设计团队与其他部门的协作挑战 在传统的项目管理模式中,设计团队往往与其他职能团队(如开发、营销、产品等)存在一定的沟通隔阂。设计团队通常专注于创意和视觉表现,而开发团队则专注于技术实现,营销团队关注市场推广和客户需求,产品团队则负责产品规划和战略。由于各…

2025-01-15:执行操作可获得的最大总奖励 Ⅰ。用go语言,给定一个整数数组 rewardValues,其中包含 n 个代表奖励值的数字。 你开始时的总奖励 x 为 0,并且所有下标都是未标记状

2025-01-15:执行操作可获得的最大总奖励 Ⅰ。用go语言,给定一个整数数组 rewardValues,其中包含 n 个代表奖励值的数字。 你开始时的总奖励 x 为 0,并且所有下标都是未标记状态。你可以进行以下操作若干次: 1.从索引范围 [0, n - 1] 中选择一个未标记的下标 i。 2.如果 re…

Python包管理uv使用

介绍 用Rust编写的一个极其快速的Python包和项目管理器。 比pip快10-100倍。 安装和管理 Python 版本。 运行和安装 Python 应用程序。 通过 curl 或 pip ,无需 Rust 或 Python 即可安装。 支持 macOS、Linux 和 Windows。安装 使用独立安装# macOS / Linux curl -LsSf https:…

Calculator VB6

Calculator是我用VB6开发的计算器,支持语音朗读。 在计算方面,支持加减乘除四则运算。也支持括号此外,与VBS语法一样,还可以使用三角函数、平方等运算符。

SendMail C#版

SendMail是我用C#开发的一款发送邮件的工具。 左侧是要发送的内容,右侧是发件人的账户配置,具体可以参考新浪邮箱或者Outlook账户配置方面的资料。输入各项,点击【发送】按钮,对方就收到了邮件。

Windows 行为测试 删除 FileStream 正在读写文件可以继续读写

本文在 Win11 系统下,测试使用 FileStream 对文件进行读写,读写过程中,删除正在读写的文件后的行为测试结论: 使用 FileShare 带 Delete 的共享方式打开的 FileStream 正在对文件进行读写过程中,可以对正在读写的文件进行删除。文件删除之后,不影响已经打开的 FileStream…

如何轻松实现服务器文件自动化传输,保障传输安全与效率?

服务器文件自动化传输是企业数据管理中至关重要的一环,确保数据的一致性、完整性和可用性。常见的服务器文件自动化传输方式,像FTP/HTTP等传统协议的⽂件同步⼯具来实现。但存在一定问题: 1.传输安全可靠性低:传输过程受⽹络环境影响较⼤,易出现延迟、断线、⽂件丢包等情况…

芯片半导体基础(二) :20世纪最伟大的发明,PN结与晶体二极管

liwen01 2025.01.12 前言 PN结 是晶体管的基础,它使得晶体管能够作为一个放大或是开关元器件。晶体管的发明不仅是一个技术上的突破,也标志着电子学的一个新时代。它极大地推动了科技和社会的发展,奠定了现代信息技术的基础,因此也被认为是20世纪最伟大的发明之一。 1947年…

DevExpress gridControl 绑定数据源之后添加非绑定列

using (DevExpress.Utils.WaitDialogForm dlg = new DevExpress.Utils.WaitDialogForm("请稍等", "查询中......", new System.Drawing.Size(100, 50))){string sqlString = "SELECT ITEM ,DESCRIPTION ,CATEGORY3 FROM WIPDBA.TIME_IMA x WHERE x.…

Gitlab搭建npm仓库

由于图片和格式解析问题,为了更好阅读体验可前往 阅读原文:::warning 使用gitlab的仓库注册表特性需要版本14.0+,如果你的版本比较低,请先根据自己的需求合理升级后再使用 ::: npm私有仓库的搭建方式有很多种,比如使用docker(阅读此篇),这里讲述如何使用gitlab作为npm仓库…