gpt4 book ai didi

java protobuf如何从int创建ByteString

转载 作者:行者123 更新时间:2023-11-30 05:51:54 30 4
gpt4 key购买 nike

我想在我的项目中使用 google protobuf。

重点是我必须设置每条消息的第一个字节,因为底层代码会根据第一个字节拒绝或接受消息,并且它不知道 protobuf。

所以这个页面说 https://developers.google.com/protocol-buffers/docs/proto#scalar我必须使用与 Java 中的 ByteString 相对应的字节字段。

bytes May contain any arbitrary sequence of bytes. string ByteString

但我不知道如何从 int 值创建 ByteString。我试过这种方式:

ByteBuffer eventTypeBuffer = ByteBuffer.allocate(1);
eventTypeBuffer.put(0x1c);
ByteString eventType = ByteString.copyFrom(eventTypeBuffer);
System.out.println(eventType.size() + " " + eventTypeBuffer.array().length);

Header.Builder mh = Header.newBuilder();
mh.setEventType(eventType);

不能正常工作,println 给出 0 1

最佳答案

ByteBuffer eventTypeBuffer = ByteBuffer.allocate(1);
eventTypeBuffer.put(0x1c);
eventTypeBuffer.flip();
ByteString eventType = ByteString.copyFrom(eventTypeBuffer);
System.out.println(eventType.size() + " " + eventTypeBuffer.array().length);

Header.Builder mh = Header.newBuilder();
mh.setEventType(eventType);

关于java protobuf如何从int创建ByteString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12277235/

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