Java:引用子字节数组

时间:2016-03-01 10:43:47

标签: java unit-testing byte bytearray

单元测试:使用毒物屏障设置字节数组。如果在测试框架中触摸了任何边界,则单元测试将失败,例如在以下片段中:

byte[]    memory = new byte[Size + 2];

/* Poison barriers. Failure in case of touch! */
memory[0]      = 0x5A; 
memory[Size-1] = 0xA5; 

...
    array = sub-array of memory[] from '1 to Size-2'
    test functions on array
...
/* Check if boarders have been touched. */
hwut_verify(memory[0]      == 0x5A);
hwut_verify(memory[Size-1] == 0xA5);

我怎样才能获得实际位于原始字节数组内的子数组?

1 个答案:

答案 0 :(得分:2)

在Java中,byte []有一个包含它最大长度的标题。这意味着您无法获得子字节[],因为它不是一个对象。

你可以做的是使用ByteBuffer

ByteBuffer bb = ByteBuffer.wrap(byteArray);
ByteBuffer portion = bb.position(10).limit(20).slice();