我必須以字節數組形式存儲一些常量值(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很好的發現,我已經更新了答案,以便代碼現在可以處理帶有小寫和大寫字符的字符串。 –