Flat Buffers - 表

概述

Flat Buffers 的最基本构建块是 table 属性。这相当于我们使用的语言中的 ,例如 Java、Python 等。

示例代码

以下是我们需要的语法,用于指示 Flat Buffers 我们将创建给定表的实例 −

namespace com.tutorialspoint.theater;

table Theater {
}
root_type Theater;

我们将上述内容保存在"theater.fbs"中,并在探索其他数据结构时使用它。

解释

namespace com.tutorialspoint.theater;

此参数特定于 Java,即,将自动生成来自".fbs"文件的代码的包。类 Theater 将在com.tutorialpoint.theater包中创建。

接下来,我们创建一个表,Theater −

table Theater

这只不过是将要创建/重新创建的对象的基类的类名。请注意,它在当前形状下是无用的,因为它没有任何其他属性。但随着我们的前进,我们将添加更多属性。

使用多个表属性

单个 fbs 文件也可以有多个表。例如,如果我们愿意,我们可以在同一个文件中添加 Visitor 表。Flat Buffers 将确保 Theater 类使用 root_type 属性保持主类。例如 −

namespace com.tutorialspoint.theater;

table Theater {
}

table Visitor {
}
root_type Theater;

从 fbs 文件创建 Java 类

要使用 Flat Buffers,我们现在必须使用 flat 二进制文件从此".fbs"文件创建所需的类。让我们看看如何做到这一点 −

flat --java theater.fbs

使用从 fbs 文件创建的 Java 类

好了,就是这样!上述命令应在当前目录中创建所需的文件,现在我们可以在 Java 代码中使用它们 −

// 使用默认缓冲区创建 FlatBuffer Builder
FlatBufferBuilder builder = new FlatBufferBuilder(1024);

// 使用 startTheater() 方法创建 Theater FlatBuffers
Theater.startTheater(builder);

在此阶段,它不是很有用,因为我们没有向表中添加任何属性。让我们在Flat Buffers - string一章中查看字符串时这样做。