JDK 21 报错:Cannot resolve symbol 'TimeUnit'解决方法
JDK 21 报错:Cannot resolve symbol 'TimeUnit'解决方法
赵海波JDK 21 报错:Cannot resolve symbol ‘TimeUnit’
Java 开发人员在使用 JDK 21 时可能会遇到一个棘手的问题:无法导入 TimeUnit 类。别担心,这只是因为在 JDK 21 中,TimeUnit 类已被转移到了一个新的包——java.time。为了在 JDK 21 中顺利使用 TimeUnit 类,你需要稍作调整。
新的导入方式
要想在 JDK 21 中使用 TimeUnit 类,只需在导入语句中指定新的包名即可:
1 | import java.time.TimeUnit; |
你也可以直接使用 TimeUnit 类的全限定名:
1 | java.time.TimeUnit.SECONDS; |
替代方案:Duration 和 ChronoUnit 类
JDK 21 中,除了 TimeUnit 类,还提供了 Duration 和 ChronoUnit 类,它们可以更精确地表示时间间隔。
Duration 类可以表示从纳秒到数百万年的时间间隔,并提供各种操作时间间隔的方法,例如加、减和比较。ChronoUnit 类则提供了秒、分钟和小时等时间单位,可与 Duration 类结合使用,表示特定时间间隔。
最终方法:切换回JDK1.8
- 确保你的项目的 JDK 配置正确设置为 JDK 1.8。有时候,IDE 可能会使用一个不完整或错误配置的 JDK。
- 在 IntelliJ IDEA 中,你可以通过以下步骤确认或更改 JDK 版本:
- 右键点击项目根目录,选择 “Open Module Settings” (或按下
F4
)。 - 在 “Project” 设置中,确保 “Project SDK” 被设置为 JDK 21。
- 在 “Modules” 中,也确保 “Language level” 设置正确。
- 右键点击项目根目录,选择 “Open Module Settings” (或按下
缓存或 IDE 问题:
- 试着重新同步或重建你的项目,有时候IDE的缓存可能导致一些类无法解析。你可以尝试以下步骤:
- 在 IntelliJ IDEA 中,使用
File
>Invalidate Caches / Restart
,然后选择 “Invalidate and Restart”。 - 重新构建项目 (
Build
>Rebuild Project
)。
- 在 IntelliJ IDEA 中,使用
评论
匿名评论隐私政策