扩展 Protobuf 消息

2024-06-19

我有许多不同的模式,但是每个模式都包含一组字段。我想知道是否有一种方法可以让不同的模式扩展父模式并继承其字段。例如,这就是我想要的:

message Parent {
    required string common1 = 0;
    optional string common2 = 1;
}

message Child1 { // can we extend the Parent?
    // I want common1, common2 to be fields here
    required int c1 = 2;
    required string c2 = 3;
}

message Child2 { // can we extend Parent?
    // I want common1, common2 to be fields here
    repeated int c3 = 2;
    repeated string c4 = 3;
}

这样 Child1 和 Child2 还包含来自 Parent 的字段 common1 和 common2(以及可能更多)。

这可能吗?如果可能的话怎么办?


这不是您问题的确切答案,但我们可以这样做来共享通用参数。

message Child1 { 
    required int c1 = 2;
    required string c2 = 3;
}

message Child2 { 
    required int c1 = 2;
    required string c2 = 3;
}

message Request {
    required string common1 = 0;
    optional string common2 = 1;
    oneof msg { Child1 c1 = 2; Child2 c2 = 3; }

}

其他选项是使用extend keyword

message Parent {
    required string common1 = 0;
    optional string common2 = 1;
}

message Child1 { 
    extend Parent
    {       
        optional Child1 c1 = 100;
    }

    required int c1 = 2;
    required string c2 = 3;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

扩展 Protobuf 消息 的相关文章

  • C# 中隐式/显式转换方法是否继承?

    我不确定我在这里做错了什么 我有一个通用类 它基本上是一个美化的整数 具有一些用于某些字符串格式设置的方法 以及字符串和 int 之间的转换 public class Base protected int m value From int
  • Protobuf 如何编码 oneof 消息结构

    对于这个 python 程序 在编码时运行 protobuf 编码会给出以下输出 0a 10 08 7f8a 0104 08 02 10 0392 0104 08 02 10 03 18 01 我不明白的是为什么8a后面有一个01 为什么9
  • 如何处理不同版本的python protobuf

    我的python包包含很多由python protobuf Arch Linux上的python2 protobuf 2 5 0 编译的文件 我在Ubuntu服务器12 04 3 有python protobuf 2 4 1 上安装了该包
  • 对象内的类中的 Scala 抽象类型

    如果我这样做 object Parent class Inner extends Testable type Self lt Inner def inner new Inner object Child class Inner extend
  • 当控制器类扩展父控制器时,为什么我们仍然需要父构造函数?

    我是 CodeIgniter 和 OOP 的初学者 我正在读一页 CI 教程here http ellislab com codeigniter user guide tutorial news section html 我发现了一些让我产
  • Boost C++ 序列化 char *

    我有一个类 我正在尝试序列化一个shared ptr 但序列化对象的正常方法不起作用 class Object public Object Object shared ptr
  • Json 数组的 Avro 架构

    假设我有以下 json id 1 text some text user id 1 id 1 text some text user id 2 对于这个对象数组来说 合适的 avro 模式是什么 简短回答 该对象数组的适当 avro 架构如
  • 如何确定字符串是序列化对象/数组还是只是字符串?

    是否有一些可靠的方法来确定字符串变量是否只是一个字符串或序列化对象 数组的字符串表示形式 您可以致电unserialize string str http www php net manual en function unserialize
  • Jackson JSON 键作为 Java 中的值

    我在 Spring MVC 应用程序中使用 Jackson 我想使用字符串值作为 Java POJO gt JSON 的键名 record
  • 将 Protobuf 消息持久保存到数据库

    保存使用 protobuf3 定义的数据的正确方法是什么 我使用 golang 和 Java 两者都支持 ORM 在 java 中使用 Hibernate 在 golang 中使用 gorm 这两个地方我都需要将生成的代码转换为相应的实体模
  • 使用 Java 创建 plist

    有没有一种简单的方法可以用Java创建plist 结果应该与 Objective C 中序列化字典相同 The PList http code google com p xmlwise source browse trunk src mai
  • Android 中的序列化

    我正在尝试在 android 中序列化绘图和路径 当我将对象写入 Objectoutputstream 时 会引发 Notserializabale 异常 我还覆盖了serializabale类中的writeObject 方法 这是代码 p
  • 如何扩展 Sonata\DoctrineORMAdminBundle\Model\ModelManager

    我想在 ModelMangaer 中进行一些更改 然后我扩展了 ModelManager 但它不起作用 我不知道为什么 有人告诉我为什么它不起作用吗 我扩展 Sonata DoctrineORMAdminBundle Model Model
  • 父构造函数和子构造函数哪个先执行?

    我已将这段代码放入编译器中 package com employer constractor public class ConstractorDemo extends A public ConstractorDemo System out
  • 基类和派生类构造函数的内存分配

    创建派生类对象时首先为哪一个分配空间 是基类构造函数还是派生类构造函数 First 分配 您所询问的内存保留不同于并且先于初始化 执行构造函数 本质上在该内存中设置合适的值 以及 正式的 我们的神圣标准 和实践的不同之处在于大多数派生对象的
  • Python 3 超级和元编程

    我正在尝试以编程方式复制然后修改一个类 但我遇到了 python 3 的 magic super 的问题 例如以下内容 class Base def init self print Base init class Orginal Base
  • 使用 lombok 注释继承出现错误

    在我的项目中 lombok 用于避免为类编写 getter 和 setter 我有两节课Child延伸Parent Value Builder AllArgsConstructor JsonIgnoreProperties ignoreUn
  • 对具有 Stream 类型成员的对象进行 JSON.NET 序列化?

    希望这是一个我忽略的简单修复 我有一个对象传递到事件处理程序中 我想使用 JSON NET 序列化该对象 如下所示 public void OnEvent IEventObject foo Serialize foo to string d
  • 使用 C 序列化 double 和 float

    如何在 C 中序列化双精度数和浮点数 我有以下用于序列化短整型 整数和字符的代码 unsigned char serialize char unsigned char buffer char value buffer 0 value ret
  • Extjs:通过构造函数或 initComponent 扩展类?

    在 extjs 中 你总是可以通过以下方式扩展 extjs 类constructor 对于派生自的类Component您还可以通过以下方式扩展initComponent 我想知道为什么这么多代码通过扩展initComponent 然而con

随机推荐

  • [flutter]为什么我的列对齐总是居中?

    我声明了连续两列来布局文本和图标 即使我设置了图标的列也始终位于中心mainAxisAlignment with MainAxisAlignment start 这是该卡的代码 import package flutter material
  • Azure 部署未安装requirements.txt 中列出的Python 包

    这是我第一次将 Flask Web 应用程序部署到 Azure 我跟着这个tutorial https azure microsoft com en us documentation articles web sites python cr
  • 如何在组件的 value 属性中使用“<”[重复]

    这个问题在这里已经有答案了 当我尝试命名我的a4j commandButton按价值 lt lt 像那样
  • 淘汰赛中的lostfocus/onblur 事件

    我想在绑定到的淘汰可观察对象上执行一个事件input 当控件失去焦点时 即使没有输入任何内容 也应该执行此函数 我尝试更改事件绑定 但当用户离开控件而不输入任何内容时 它不会触发 我尝试了 mouseout 事件 但只有当用户在失去焦点后单
  • 使用 Cloud Scheduler 触发 HTTP 云函数

    我的云功能的 Cloud Scheduler 作业出现问题 我使用以下参数创建了作业 Target HTTP URL 我的云函数的触发网址 HTTP方式 POST Body expertsender apiKey ExprtSender A
  • ModelAndView 和 ModelMap 有什么区别? [复制]

    这个问题在这里已经有答案了 Is ModelMap只是 Spring 3 中的新名称ModelAndView Spring 3 中的功能有变化吗 在 Spring 3 应用程序中考虑使用以下代码ModelMap RequestMapping
  • 如何确定 fork-join 任务的适当分工阈值

    看完之后分叉 连接教程 http docs oracle com javase tutorial essential concurrency forkjoin html 我创建了一个用于计算大阶乘的类 public class ForkFa
  • 页面加载后 5 秒后加载 JavaScript?

    我已经尝试过以下方法 gt 这是正确的方法吗 我想这样做的原因是因为我的整个网站在页面加载时都处于动画状态 例如淡入淡出 我的 JavaScript 只会让动画变得不流畅 任何反馈表示赞赏 这段代码会起作用 只需以毫秒为单位设置时间并在 l
  • Facebook Open Graph 图像的最小宽度和高度是多少?

    我读到 Facebook 开放图中与给定 URL 关联的图像必须大于 50 x 50 然而 当我们运行 Facebook 对象调试器时 我们收到以下警告 微小的 og image og image 引用的所有图像在两个维度上都必须至少为 2
  • 到子级的角度路由 - 来自不同父级的子级

    我正在使用打字稿进行角度路由 但面临一些路由问题 流程似乎是 我真正想做的是通过Child Child2的一部分 其ID为Child1的Child 路由 但它不显示页面 Child1 用于插入 更新的所有路由都驻留在 Child1 中 而
  • SQL:如何在按部分分组的查询中使用子查询?

    如何在按部分分组的查询中使用子查询 我使用 SQL Server 2008 R2 和 Delphi 2010 我收到此错误 Cannot perform an aggregate function on an expression cont
  • Spinner onItemSelected 被错误调用(无需用户操作)

    我有一个在对话框视图中显示的微调器 对话框开始时onItemSelected叫做 我真的不想处理这个 但只有当用户做出选择时 所以我要么需要阻止这种情况 也许是因为没有设置默认值 要么我需要知道不是用户在做出此选择 本着比尔 莫特解决方案的
  • Android:如何在 Android 中访问电子邮件地址

    我有以下代码 通过它我可以检索电话号码 不知何故 我无法使用 android provider Contacts People API 检索电子邮件地址 有任何想法吗 import android app AlertDialog impor
  • 带填充的 Tailwind CSS 导航悬停下拉菜单

    我正在尝试展示子 ul 当项目悬停时 在第一个导航项目上列出 一切正常 除了有时 时好时坏 当您位于第一行的填充之间时 ul 项目和子项目 ul 项目 次要项目 ul 会消失 当我从下拉菜单导航到项目列表时 如何保持辅助导航列表打开 JSF
  • 如何安装 grunt-cli 而不出现错误?

    灵感来自 Chris Coyierpost http 24ways org 2013 grunt is not weird and hard 我决定尝试一下 grunt 但我在设置时遇到了很大的问题 首先 我安装了 Node js 然后我将
  • 使用 BinaryWriter 将一位写入二进制文件

    我想将一位写入二进制文件 using FileStream fileStream new FileStream myfile bin FileMode Create using BinaryWriter binaryWriter new B
  • 无法在 IBM Mobilefirst Platform Test Workbench 8.7(免费版本)中引用数据池测试

    使用的工具 IBM Mobilefirst Platform Test Workbench 8 7 免费版 OS Windows 7的 问题描述 1 在测试工作台中以记录模式创建测试用例 针对登录场景 2 插入一个新的数据池 并向数据池中的
  • 模拟比存根更好吗?

    不久前我读到了模拟不是存根 http www martinfowler com articles mocksArentStubs htmlMartin Fowler 的文章 我必须承认我有点害怕外部依赖性增加的复杂性 所以我想问 单元测试时
  • 如何解决下载时“失败 - 无文件”的问题?

    我正在尝试设置适用于 Chrome 和 IE 10 11 的下载文件 它在大多数情况下适用于普通文件类型 EXE PNG TXT 等 但当尝试下载没有文件类型的文本文件或 000 等随机类型时 它将失败 显示 失败 否 文件 有谁知道可能导
  • 扩展 Protobuf 消息

    我有许多不同的模式 但是每个模式都包含一组字段 我想知道是否有一种方法可以让不同的模式扩展父模式并继承其字段 例如 这就是我想要的 message Parent required string common1 0 optional stri