news 2026/8/27 10:27:01

错误java.lang.UnsupportedOperationException: null \ at java.sql.Date.toInstant(Date.java:304)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
错误java.lang.UnsupportedOperationException: null \ at java.sql.Date.toInstant(Date.java:304)

问题出在 java.sql.Date.toInstant() 方法上!这个方法在 java.sql.Date 类中是不支持的,会抛出 UnsupportedOperationException 异常。 <br/> 看起来 employee.getInbusdat() 返回的是一个 java.sql.Date 对象,而不是 java.util.Date 对象。当我们调用 toInstant() 方法时,就会抛出这个异常。

问题分析

从错误堆栈中可以看到:

java.lang.UnsupportedOperationException: null at java.sql.Date.toInstant(Date. java:304) at com.hlig.service.sm.impl. PushServiceImpl. lambda$getWorkAnniversaryMsg$18 (PushServiceImpl.java:770)

真正的问题 : java.sql.Date.toInstant() 方法是不支持的,会抛出 UnsupportedOperationException 异常。 employee.getInbusdat() 返回的是一个 java.sql.Date 对象,而不是 java.util.Date 对象。

解决方案

我修改了 DateUtils.calculateAnniversary 方法,使用 Calendar 类来计算周年数,避免使用 toInstant() 方法:

// 修复前:使用toInstant()方法(java.sql. Date不支持) LocalDate entry = entryDate.toInstant(). atZone(ZoneId.systemDefault()).toLocalDate (); LocalDate current = currentDate.toInstant ().atZone(ZoneId.systemDefault()). toLocalDate(); // 修复后:使用Calendar类 Calendar entryCal = Calendar.getInstance (); entryCal.setTime(entryDate); Calendar currentCal = Calendar.getInstance (); currentCal.setTime(currentDate);

修复效果

  1. 解决了异常 :不再抛出 UnsupportedOperationException 异常
  2. 保持了功能 :保持了原有的业务逻辑,包括2月29日的特殊处理
  3. 兼容性更好 :能够处理 java.sql.Date 和 java.util.Date 两种类型的日期对象

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 11:19:12

科研生产力革命:手把手打造大模型 Research Agent(文献调研 × 论文写作 × 思路激发)

从0到1掌握Research Agent:让大模型成为你的智能科研助手实战教程 在大模型的“能力树”上,**Research Agent(科研智能体)**是最具实用性的分支之一——它能自主完成“文献检索、信息整合、报告生成”全流程,让你从繁琐的资料搜集里解放出来。如果你想让大模型从“聊天工…

作者头像 李华
网站建设 2026/8/26 11:39:28

opengl32.dll文件丢失找不到 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/8/23 11:43:14

[STM32C0] 【STM32C092RC 测评】开箱以及环境配置

千呼万唤终于出来&#xff0c;STM32C092RC测评&#xff0c;这个是今年新出的系列重点就是特别的CAN接口&#xff0c;接下来我们一起看一下真容。 标准的纸盒包装&#xff0c;现在基本上看不到那种透明塑料的包装了&#xff1b; 打开后看到的是静电防护带保护的开发板&#xff1…

作者头像 李华
网站建设 2026/8/23 11:32:30

深圳城区,竟然有座沉睡20多年的“垃圾山”

在深圳罗湖&#xff0c;有座特别的“山”&#xff0c;它不是自然形成的&#xff0c;而是由垃圾堆成的。 这就是玉龙填埋场&#xff0c;一个已经“沉睡”了二十多年的地方。 1983年的时候&#xff0c;深圳还处在高速发展的早期&#xff0c;玉龙填埋场所在的地方&#xff0c;算…

作者头像 李华
网站建设 2026/8/25 11:16:50

JDK21-虚拟线程(原理)

一、先给结论 虚拟线程不是不运行在 OS 线程上&#xff0c;而是&#xff1a; 只在“真正需要 CPU 时”才短暂占用 OS 线程。 在 IO 等待时&#xff0c;JVM 会把它“卸载”下来。 二、为什么传统线程一定占用 OS 线程&#xff1f; 1️⃣ Java 线程 OS 线程&#xff08;1:1&am…

作者头像 李华