我是 Google 协议缓冲区的新手,并试图int[]
通过 protobuf 消息在 java 中对原始数组进行建模。
目前我正在使用这个原型文件:
syntax = "proto3";
package protobuf;
message primitiveArrayMsg {
repeated int32 data = 1;
}
它编译为具有List<Integer>
数据结构而不是原始数组的java 类int
。
/**
* <code>repeated int32 data = 1;</code>
*/
java.util.List<java.lang.Integer> getDataList();
我的应用程序必须保存数百万个 int 值,并且为了节省内存,我决定int
使用Integer
. 有没有办法在具有int[]
数据结构的 java 类中编译 protobuf 消息描述?
不幸的是,我在Protocol Buffers Language Guide (proto3)中一无所获。How to add a int array in protobuf message中也提出了类似的问题,我尝试过,但显然问题作者正在寻找一个ArrayList<Integer>
,因此答案对我没有帮助。
如果没有对此的支持,您能否向我推荐一种比装箱Integer
和使用更节省内存的方法List<Integer>
?