php エディタ Xinyi はここで問題を紹介します。Protobuf メッセージで、protoreflect.ProtoMessage インターフェイスの ProtoReflect メソッドが実装されていないことがわかり、このメソッドはポインタ受信デバイスを使用しています。 。この質問は混乱や不便を引き起こす可能性があります。この記事では、この問題をより深く理解し、対処できるように、この問題の原因と考えられる解決策を詳しく説明します。一緒に調べてみましょう!
protobuf メッセージがインポートされました "google/protobuf/any.proto"
:
anypb を使用して、data
フィールド内の別の protobuf をシリアル化しようとしています:
コンパイル後に次のエラーが発生します:
リーリードキュメントによると、ここでは何も珍しいことはしていません。この問題はどうすれば解決できますか?
これは、シリアル化して data
フィールド内に保存しようとしている protobuf です。
lootcrate.proto:
message mintrecord { ... google.protobuf.any data = 11; ... }
サラス・サダシヴァン・ピライが正しいです。
コードを次のように変更します:
以上がProtobuf メッセージは protoreflect.ProtoMessage を実装しません (ProtoReflect メソッドにはポインター レシーバーがあります)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。