Protobuf - 类/成员
Protobuf 最基本的构建块是 member 属性。这在我们使用的语言中转换为 类,例如 Java、Python 等。
以下是我们需要的语法,用于指示 Protobuf 我们将创建给定类的实例 −
syntax = "proto3"; package theater; option java_package = "com.tutorialspoint.theater"; message Theater { }
我们将上述内容保存在 "theater.proto" 中,并在探索其他数据结构时使用它。
此处的 "语法" 表示我们正在使用哪个版本的 Protobuf。因此,我们使用最新版本 3,因此模式可以使用对版本 3 有效的所有语法。
syntax = "proto3";
此处的包用于解决冲突,例如,我们有多个同名的类/消息。
package tutorial;
此参数特定于 Java,即,将自动生成 .proto" 文件中代码的包。
option java_package = "com.tutorialspoint.greeting";
现在我们已经完成了先决条件,这里的最后一项是 −
message Theater
这只不过是将要创建/重新创建的对象的基类的类名。请注意,它在当前形状下是无用的,因为它没有任何其他属性。但随着我们的前进,我们将添加更多属性。
单个 proto 文件也可以有多个类/消息。例如,如果我们愿意,我们可以在同一个文件中添加Visitors消息/类。Protobuf 将确保为同一个文件创建两个单独的独立类。例如 −
syntax = "proto3"; package theater; option java_package = "com.tutorialspoint.theater"; message Theater { } message Visitor { }
要使用 Protobuf,我们现在必须使用 protoc 二进制文件从此".proto"文件创建所需的类。让我们看看如何做到这一点 −
protoc --java_out=java/src/main/java proto_files heater.proto
好了,就是这样!上述命令应创建所需的文件,现在我们可以在 Java 代码中使用它 −
Theater theater = Theater.newBuilder().build() Visitor visit = Visitor.newBuilder().build()
在此阶段,它不是很有用,因为我们尚未向成员/类添加任何属性。让我们在查看 strings 时执行此操作。