php 編集者 Yuzi、こんにちは! 「X」タイプの実装の問題については、エクスポートされていないメソッドがあり、別のパッケージで定義されているため、直接実装することはできません。 PHP では、異なるパッケージ間のメソッドやプロパティに直接アクセスすることはできません。 「X」タイプを実装する場合は、インターフェイスまたは継承を使用して、必要な機能を間接的に実装することを検討できます。インターフェイスを定義して別のクラスに実装するか、継承することによって、必要なメソッドとプロパティを取得します。これにより、「X」タイプの機能をさまざまなパッケージに実装できるようになります。お役に立てれば!
次のコードがあります:
リーリー次のエラーが発生しました:
リーリー私のメッセージサーバーの構造は次のようになります:
リーリーエラーは次の行にあります:
リーリー何が起こったのかわかりません:(
mustEmbedUnimplementedMessageServiceServer()
の実装を提供しないでください。サーバー構造を埋め込む必要があります UnimplementedMessageServiceServer
. メンバーは、これを伝えるために so という名前が付けられています。インターフェイスには、
すべての実装は、上位互換性のために UnimplementedMessageServiceServer を組み込む必要があります。
いつの日か、gRPC 開発者がサーバー インターフェイスに新しいメソッドを追加するかもしれないという考えです。これを行うと、「メソッドが実装されていません」エラーを返す新しいメソッドも unimplemented
型に追加されます。 unimplemented
型をサーバー型に埋め込む必要があるため、サーバーのエラーによりコードが突然型チェックに失敗し始めるのではなく、メソッドを継承してエラーをスローするデフォルトの実装を取得します。 type には新しいメソッドがありません。
以上がエクスポートされていないメソッドがあり、別のパッケージで定義されているため、型は 'X' を実装できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。