我希望在我的项目中使用Google Protobuf。
问题是,由于底层代码基于第一个字节接受或拒绝消息,并且它不知道protobuf,所以我必须设置每个消息的第一个字节。
因此,这个页面https://developers.google.com/protocol-buffers/docs/proto#scalar说我必须使用与Java中的ByteString对应的bytes字段。
问题是,由于底层代码基于第一个字节接受或拒绝消息,并且它不知道protobuf,所以我必须设置每个消息的第一个字节。
因此,这个页面https://developers.google.com/protocol-buffers/docs/proto#scalar说我必须使用与Java中的ByteString对应的bytes字段。
但我不知道如何从int值创建ByteString。我已经尝试了这种方式:bytes可以包含任意字节序列。string 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