アプリケーションAはアプリケーションBがファイルの次のバージョンを使用し必須ではあるが範囲外であれば列挙型の値は何ですか?
message The_message
{
enum The_enum
{
one = 1;
two = 2;
}
required The_enum the_enum = 1;
}
このプロト・ファイルを使用します。それは、アプリケーションBがthree
列挙型を使用したアプリケーションAにメッセージを送信した場合どうなりますか1つの以上enumフィールド
three = 3;
を持っていることを除いて類似しているのですか?
protobuf documentationは、さまざまな価値を提供しようとした場合
は、パーサは未知の分野
ので列挙three
が未知のフィールドになりように扱うだろうと言います。 the_enum
がオプションの場合は問題ありませんが、必須フィールドです。
アプリケーションAはメッセージを正しく解析できますか?
列挙型はこのように拡張するつもりはありませんか?
答えはC#とC++の間で異なる可能性がありますが、Javaについてはわかりません。 –
Javaではおそらく 'null'です。enumは本物のオブジェクトです。 (決してプロトコルバッファを使用しませんでした。) –
試しましたか?ドキュメントは不明ですので、私はそれを "自分で試して何が起こるか見る"と考えていますが、それは以下の@ StephenCの答えにつながる可能性があります。 –