我必须以字节数组形式存储一些常量值(UUID)在Java中,我想知道什么是初始化这些静态数组的最佳方式。这就是我目前正在做的事情,但我觉得必须有更好的方式。如何在Java中初始化一个字节数组?
private static final byte[] CDRIVES = new byte[] { (byte)0xe0, 0x4f, (byte)0xd0,
0x20, (byte)0xea, 0x3a, 0x69, 0x10, (byte)0xa2, (byte)0xd8, 0x08, 0x00, 0x2b,
0x30, 0x30, (byte)0x9d };
private static final byte[] CMYDOCS = new byte[] { (byte)0xba, (byte)0x8a, 0x0d,
0x45, 0x25, (byte)0xad, (byte)0xd0, 0x11, (byte)0x98, (byte)0xa8, 0x08, 0x00,
0x36, 0x1b, 0x11, 0x03 };
private static final byte[] IEFRAME = new byte[] { (byte)0x80, 0x53, 0x1c,
(byte)0x87, (byte)0xa0, 0x42, 0x69, 0x10, (byte)0xa2, (byte)0xea, 0x08,
0x00, 0x2b, 0x30, 0x30, (byte)0x9d };
...
and so on
有什么我可以使用,可能效率较低,但看起来更清洁? 例如:
private static final byte[] CDRIVES =
new byte[] { "0xe04fd020ea3a6910a2d808002b30309d" };
番石榴例如做书面不大的工作 - 它必须是'base16()小写(。 ).decode(...)'如果你有小写十六进制数字。 http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/io/BaseEncoding.html#lowerCase() –
@PeterDeGlopper很好的发现,我已经更新了答案,以便代码现在可以处理带有小写和大写字符的字符串。 –