gpt4 book ai didi

java - 当参数中已提供字节数组对象时,为什么某些 Java 函数需要字节数组长度?

转载 作者:行者123 更新时间:2023-12-01 16:45:31 25 4
gpt4 key购买 nike

在编写Java代码时,我真的很想知道为什么有些函数需要字节数组长度作为参数,而第一个参数是字节数组对象。为什么他们没有从提供的对象中获取长度?

例如:

// E.g.: 1. Bitmap
byte[] bytes = task.getResult();
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);

// E.g.: 2. Datagram
byte[] data = new byte[1024];
DatagramPacket request = new DatagramPacket(data, data.length);

如果他们想要长度,为什么他们不使用 data.length?

最佳答案

字节数组是一个缓冲区,读取长度小于缓冲区长度的数据。长度参数定义缓冲区中相关的字节数。您不应该在参数中传递缓冲区的长度,这将是多余的。您应该传递缓冲区中包含实际数据的字节数。

例如,DatagramPacket 的 API 文档就揭示了这一点。

length - the number of bytes to read

关于java - 当参数中已提供字节数组对象时,为什么某些 Java 函数需要字节数组长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52272117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com