TimeUnit類表示給定粒度單位的持續時間,還提供了轉換為不同單位的實用方法以及執行計時延遲的方法。
TimeUnit是具有七個粒度級別的枚舉: DAYS,HOURS,MICROSECONDS,MILLISECONDS,MINUTES,NANOSECONDS和SECONDS 。
我發現有用的第一個功能是 convert 方法。 使用這種方法,您可以告別典型:
私有靜態最終int FIVE_SECONDS_IN_MILLIS = 1000 * 5;
像這樣:
長持續時間= TimeUnit.MILLISECONDS.convert(5,TimeUnit.SECONDS);
但是,也存在以更好的可讀性方法進行的等效操作。 例如,相同的轉換可以表示為:
長持續時間= TimeUnit.SECONDS.toMillis(5);
第二組真正有用的操作是與停止當前線程有關的操作。
例如,您可以使用方法休眠當前線程 :
TimeUnit.MINUTES.sleep(5);
代替:
Thread.sleep(5 * 60 * 1000);
但是您也可以將其與join一起使用,并等待超時。
線程t = new Thread(); TimeUnit.SECONDS.timedJoin(t,5);
因此,正如我們可以看到的那樣, TimeUnit類雖然具有表達能力,但您可以像以前那樣做,但是可以采用更時尚的方式。 請注意,您還可以使用靜態導入,并且代碼將更具可讀性。
參考: 再見,再見,5 * 60 * 1000 //“五分鐘,再見,再見”,來自我們的JCG合作伙伴 Alex Soto,來自“ 一個罐子統治他們”所有博客。
翻譯自: https://www.javacodegeeks.com/2012/06/bye-bye-5-60-1000-five-minutes-bye-bye.html