协议缓冲区文档警告......
您永远不应该通过继承向生成的类添加行为 从他们。这将打破内部机制,并不好 无论如何,面向对象的实践。
我的两个问题是:
答案 0 :(得分:3)
“出了什么问题”将是非常具体的实施。如果您引用了特定实现,则可能会回答,但在更一般意义上:这不是受支持的方案,并且如果您进行子类化,则实现不需要正常工作或根本不需要。这是一个未定义的行为,所有这些暗示。此外,协议缓冲区不支持继承,因为并非所有目标平台都支持它。关键思想:
SomeDerivedClass
,则序列化程序无法再将其提供给您作为OO关注的问题;这不是你的类型;它是一个旨在服务于特定目的的DTO。常见的用法可能是从DTO到/来自您的域模型的 map ,这可能更复杂,或者可能封装 DTO(如果有用的话)(可能是外观)。