我一直喜欢使用TimeUnit的作业的可读性,如下所示:
long timePeriodInMillis = TimeUnit.MINUTES.toMillis( 53 );
通过类似的东西:
long timePeriodInMillis = 53 * 60 * 1000;
我可以将等效的枚举用于文件大小单位吗?就像是
long maxBits = FilesizeUnit.MEGABYTES.toBits( 11 );
最佳答案
我已经在半年前做了类似的事情,只是出于受TimeUnit枚举启发的乐趣。
我明天将其上传到GitHub。它包含两个枚举:BitUnit
和ByteUnit
。两者也都支持相互转换。 ByteUnit支持基于2的前缀以及基于10的前缀。 (ByteUnit
中的枚举常量和方法对前缀使用IEC 80000-13术语。)
用法如下所示:
System.out.println(BitUnit.KBIT.toKiB(16000));
System.out.println(ByteUnit.GIB.toMB(1));
System.out.println(ByteUnit.GIB.toMiB(1));
System.out.println(ByteUnit.GB.toMB(1));
System.out.println(ByteUnit.GB.toMiB(1));
...并打印出:
1953.125
1073.741824
1024.0
1000.0
953.67431640625
对于位和字节之间的转换方法,您已经重载了方法以指定每个字节8位以外的字长。
希望你能等到明天。
编辑
您在这里:https://github.com/fabian-barney/Utils
不要怪我的目录结构-我仍然还不熟悉Git。 :)