java - protobuf为什么要使用builder来构造数据?

标签 java protocol-buffers builder

在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/

相关文章:

shell+java错误

java - Http 请求 POST 与 GET

java - 超越 Java 中的 Integer.MAX_VALUE 约束

c++ - Protobuf 中的 ParseFromArray 和 ParseFromString 有什么区别?

builder - SCons 自定义构建器 - 使用多个文件构建并输出一个文件

ruby-on-rails - Rails 3 - XML 生成器

java - 在java中无需打开浏览器即可检查url是否存在

iphone - 使用 cocoaasyncsocket 框架读取 varint

java - Protocol Buffer 挑战

mysql - 如何在数据库中创建Service Builder的表?