在Java中,要创建数据结构,我们需要像
Builder builder=Data.newBuilder();
builder.setField(...);
...
Data=builder.build();
为什么不只为getter()
的每个字段提供setter()
和Data
?喜欢:
Data data=new Data();
data.setFiled(...);
答案 0 :(得分:2)
Protobuf使用构建器来生成Message对象,因为the message objects themselves are immutable:
消息对象[...]是不可变的,就像Java字符串一样。要构造消息对象,您需要使用构建器。
这可能是 完成的操作,以允许仅在已知Message对象不变的情况下才能进行优化。