在使用proto时,我在不同的proto文件中定义了相同名字的proto对象,得到了以下的报错。
一开始我对proto并不熟悉,认为这是proto自带的bug,并想要通过更新protobuf版本来解决这个bug。然而事实证明,这并不是版本落后的问题。
在proto中,我们在所有proto文件中定义的proto对象都会被统一的放置在一起,当其被调用时,如果我们定义了两个命名一样的proto对象(即使这里两个对象在不同的文件中),则会报类型一样的错误,即上图中所示。
所以,如果想要解决这个bug,我们必须要将定义的proto对象的命名设计成唯一的命名。
当命名区分开后,这个问题也就被我们轻松解决了。
【bug分享】Paramete to MergrFrom() must be instance of same class: expected xxx got xxx
于 2023-11-07 13:56:08 首次发布