在java中,要创建数据结构,我们需要这样做
Builder builder=Data.newBuilder();
builder.setField(...);
...
Data=builder.build();
为什么不直接提供 getter()
和setter()
对于 Data
的每个字段?。像:
Data data=new Data();
data.setFiled(...);
最佳答案
Protobuf 使用构建器来生成 Message 对象,因为 the message objects themselves are immutable :
Message objects [...] are immutable, just like a Java String. To construct a message object, you need to use a builder.
这样做可能是为了允许只有在已知 Message 对象不会更改时才能进行的优化。
关于java - protobuf为什么要使用builder来构造数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59284053/