java – 如何将底层字节数组视为短裤数组?还是整数?还是多头?

我是一名嵌入式工程师,在
Java工作.我需要与设备进行通信,并且经常需要将缓冲区按到某些硬件所需或由某些硬件生成的形式.

我花了相当多的时间在网上(和这个网站)寻找如何将字节缓冲区视为更大元素的缓冲区的答案.有很多回复,但它们总是归结为(1)使用ByteBuffer或(2)手动进行转换.

问题是,不需要转换……底层字节数组包含有效的短路,具有正确的字节序.我不希望将字节数组复制到相同的short数组.我想要做的就是说服Java编译器将它们视为我感兴趣的类型.

我没有很多ByteBuffer的经验,但我是第一条走下去的路.我发现如果我有一个ByteBuffer并且我调用它的asShortBuffer()函数,生成的ShortBuffer没有后备数组……我不能在它上面调用array(),这就是我需要的.

有什么想法吗?

最佳答案 你真的需要一个ShortBuffer吗?为什么不直接使用ByteBuffer上的各种get / put方法从/向底层字节数组读取/写入short,int和其他值?

点赞