是否可以将类似TimeUnit的枚举作为参数传递给方法?我正在编写一个Java方法,它需要很长的持续时间参数,如果有更好的方法,我很好奇。基本上,我想把一些东西传递给我的方法,这个方法在我实际尝试传递给它的持续时间上有点清晰/明确。我不想写自己的包装器,因为我确定那里已经存在某些东西,不是吗?
所以,这样的事情显然不起作用,因为单位不存储任何“状态”,是吗? :
void timedMethod( TimeUnit unit ) {
long duration = 1000;
long val = unit.toMillis(duration);
}
答案 0 :(得分:4)
当然可以。例如,Future#get
的一个签名是:
public V get(long timeout, TimeUnit unit);
实施可能看起来像:
long millis = unit.toMillis(timeout);
//do something with the number of milliseconds
因此,如果您致电get(1, SECONDS)
,millis
将为1000。