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