JDK21无法导入TimeUnit类的解决办法

 更新时间:2024年01月06日 08:55:00   作者:lzh_me  
这篇文章主要给大家介绍了关于JDK21无法导入TimeUnit类的解决办法,TimeUnit是java.util.concurrent包下面的一个类,TimeUnit提供了可读性更好的线程暂停操作,通常用来替换Thread.sleep(),需要的朋友可以参考下

运行环境:windows11、IDEA2023.1.3、JDK21

问题描述:IDEA中无法导入java.util.concurrent.TimeUnit类。

以下截图是问题解决后的截图。有问题的时候未截图,说明一下,有问题的时候TimeUnit类是红色的,无法导入,查看JDK下面的java.util.concurrent包,会发现有这个类,注意的是,这时候这个类是.class文件,点开的话能看到源码,但是会提示"decompiled .class file bytecode version:65.0(Java 21)",意思就是这个类是反编译过来的。注意区分一下下图里面,显示的是java文件,这才是正常的。

解决办法是升级IDEA的版本,升级到2023.1.5后可以正常导入。我是直接通过update升级的,自动升级到1.5,我看官网可以下载的最新版是Version: 2023.2.5。PS:有兴趣的可以去看看BUG修复的日志。

另,如果遇到类似的问题,可以先尝试清空下IDEA缓存,重启IDEA的时候选择“Invalidate and Restart”,一般可以解决项目中有这个类但是import不了的问题。

TimeUnit vs Thread.sleep()

目前我们讨论使用TimeUnit的好处是提高了可读性,但是有时候觉得其他方法更好,因为Thread.sleep()伴随java很早就出现了,几乎所有程序员都知道Thread.sleep(),都知道是将当前线程暂停,而对TimeUnit并不太熟悉。两个原因:一是对比起Thread.sleep(),TimeUnit不是很常用,第二是在它不在Thread类中,就像wait和notify同样不是在Thread中,反正这些需要一段时间才能被采用,并成为一个标准的方式。

总结来说在你想用Thread.sleep()方法的地方你最好使用TimeUnit.sleep()方法来代替。它不尽可以提高代码的可读性而且能更加熟悉java.util.concurrent包,因为TimeUnit在并发编程中也是一个关键API

总结

到此这篇关于JDK21无法导入TimeUnit类解决办法的文章就介绍到这了,更多相关JDK21无法导入TimeUnit类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaWeb文件上传流程

    JavaWeb文件上传流程

    这篇文章主要介绍了JavaWeb文件上传流程,JavaWeb中最重要的技术之一,下文关于其文件上传的流程分享,需要的小伙伴可以参考一下
    2022-05-05
  • Java中ByteArrayOutputStream乱码问题解决

    Java中ByteArrayOutputStream乱码问题解决

    本文主要介绍了Java中ByteArrayOutputStream乱码问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • 如何获取Java集合中泛型的Class对象

    如何获取Java集合中泛型的Class对象

    这篇文章主要介绍了如何获取Java集合中泛型的Class对象问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Java源码解析ThreadLocal及使用场景

    Java源码解析ThreadLocal及使用场景

    今天小编就为大家分享一篇关于Java源码解析ThreadLocal及使用场景,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 讲解Java编程中finally语句的基本使用方法

    讲解Java编程中finally语句的基本使用方法

    这篇文章主要介绍了讲解Java编程中finally语句的基本使用方法,finally在异常处理中的使用时Java入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • 基于Transactional事务的使用以及注意说明

    基于Transactional事务的使用以及注意说明

    这篇文章主要介绍了Transactional事务的使用以及注意说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • springboot利用aspose预览office文件的实现过程

    springboot利用aspose预览office文件的实现过程

    这篇文章主要给大家介绍了关于springboot利用aspose预览office文件的相关资料,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考价值,需要的朋友可以参考下
    2021-06-06
  • java 重定义数组的实现方法(与VB的ReDim相像)

    java 重定义数组的实现方法(与VB的ReDim相像)

    java 重定义数组的实现方法(与VB的ReDim相像),需要的朋友可以参考一下
    2013-04-04
  • Java算法之桶排序Bucket Sort详解

    Java算法之桶排序Bucket Sort详解

    这篇文章主要介绍了Java算法之桶排序Bucket Sort详解,桶排序(Bucket Sort)又称箱排序,是一种比较常用的排序算法,其算法原理是将数组分到有限数量的桶里,再对每个桶分别排好序,最后一次将每个桶中排好序的数输出,需要的朋友可以参考下
    2023-10-10
  • SpringBoot中@RestControllerAdvice注解的使用

    SpringBoot中@RestControllerAdvice注解的使用

    这篇文章主要介绍了SpringBoot中@RestControllerAdvice注解的使用,@RestControllerAdvice主要用精简客户端返回异常,它可以捕获各种异常,需要的朋友可以参考下
    2024-01-01

最新评论