JDK21無法導入TimeUnit類的解決辦法
運行環(huán)境:windows11、IDEA2023.1.3、JDK21
問題描述:IDEA中無法導入java.util.concurrent.TimeUnit類。
以下截圖是問題解決后的截圖。有問題的時候未截圖,說明一下,有問題的時候TimeUnit類是紅色的,無法導入,查看JDK下面的java.util.concurrent包,會發(fā)現(xiàn)有這個類,注意的是,這時候這個類是.class文件,點開的話能看到源碼,但是會提示"decompiled .class file bytecode version:65.0(Java 21)",意思就是這個類是反編譯過來的。注意區(qū)分一下下圖里面,顯示的是java文件,這才是正常的。


解決辦法是升級IDEA的版本,升級到2023.1.5后可以正常導入。我是直接通過update升級的,自動升級到1.5,我看官網(wǎng)可以下載的最新版是Version: 2023.2.5。PS:有興趣的可以去看看BUG修復的日志。
另,如果遇到類似的問題,可以先嘗試清空下IDEA緩存,重啟IDEA的時候選擇“Invalidate and Restart”,一般可以解決項目中有這個類但是import不了的問題。

TimeUnit vs Thread.sleep()
目前我們討論使用TimeUnit的好處是提高了可讀性,但是有時候覺得其他方法更好,因為Thread.sleep()伴隨java很早就出現(xiàn)了,幾乎所有程序員都知道Thread.sleep(),都知道是將當前線程暫停,而對TimeUnit并不太熟悉。兩個原因:一是對比起Thread.sleep(),TimeUnit不是很常用,第二是在它不在Thread類中,就像wait和notify同樣不是在Thread中,反正這些需要一段時間才能被采用,并成為一個標準的方式。
總結(jié)來說在你想用Thread.sleep()方法的地方你最好使用TimeUnit.sleep()方法來代替。它不盡可以提高代碼的可讀性而且能更加熟悉java.util.concurrent包,因為TimeUnit在并發(fā)編程中也是一個關(guān)鍵API
總結(jié)
到此這篇關(guān)于JDK21無法導入TimeUnit類解決辦法的文章就介紹到這了,更多相關(guān)JDK21無法導入TimeUnit類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中ByteArrayOutputStream亂碼問題解決
本文主要介紹了Java中ByteArrayOutputStream亂碼問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07
springboot利用aspose預覽office文件的實現(xiàn)過程
這篇文章主要給大家介紹了關(guān)于springboot利用aspose預覽office文件的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考價值,需要的朋友可以參考下2021-06-06
java 重定義數(shù)組的實現(xiàn)方法(與VB的ReDim相像)
java 重定義數(shù)組的實現(xiàn)方法(與VB的ReDim相像),需要的朋友可以參考一下2013-04-04
SpringBoot中@RestControllerAdvice注解的使用
這篇文章主要介紹了SpringBoot中@RestControllerAdvice注解的使用,@RestControllerAdvice主要用精簡客戶端返回異常,它可以捕獲各種異常,需要的朋友可以參考下2024-01-01

