Java:对字节子数组的引用

标签 java unit-testing byte arrays

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

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);

如何获取实际位于原始字节数组内的子数组?

最佳答案

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

你能做的就是使用 ByteBuffer

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

关于Java:对字节子数组的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35720772/

相关文章:

java - 为什么java方法Integer.toBinaryString(-128)输出七位数字?

将字节数组转换为整数

java - 有没有办法使用 Apache 的 HttpClient 获取网站的证书?

java - 使用 Apache Commons HttpClient 3.1 连接到 Java 中的安全服务器抛出 ValidatorException

c# - 多文件删除方法单元测试成功

javascript - QUnit 多个 asyncTest 与 setTimeout

java - 十六进制到字节,ruby 和 java

JavaFX 事件处理程序 nullpointerException

java - 生成唯一随机数列表

c# - 模拟存储库返回列表