gpt4 book ai didi

java - 使用 thrift 在 java 生成的文件中额外的 boolean 集字段

转载 作者:行者123 更新时间:2023-11-30 02:21:09 28 4
gpt4 key购买 nike

我有一个 thrift 文件 point.thrift,它只有两个变量,如下所示:

struct Point {
1: double lat,
2: double lon
}

但是当我使用生成java文件时,

thrift --gen java point.thrift

那么生成的java代码还有其他 boolean 变量,setLat和setLon。所以,我的 Point 对象如下所示:

"point": {
"lat": 12.983451879142935,
"lon": 77.75181960314512,
"setLat": true,
"setLon": true
}

有什么方法可以从我的点对象中删除这些额外的 boolean 变量,因为它增加了我的对象的大小,这反过来会在我存储它们时占用大量空间。请注意,这是基本定义,但实际定义将包含许多其他字段。因此,存储对我来说是一个问题。

最佳答案

Thrift 编译器生成一个位集来确定设置或未设置哪些字段。这些的背景在于codesf已经说过的:需求。

简而言之:Thrift 支持三种必需性:可选必需 以及第三种称为“默认”必需性。当没有明确的可选必需规范时,会发生后者。 Thrift 运行时库使用这些标志来确定是否已为特定字段分配了值。

就 Java 而言,无论您指定什么要求,实现显然总是生成这些“isset”位。

关于java - 使用 thrift 在 java 生成的文件中额外的 boolean 集字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46804847/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com