2016-08-03 21 views
0

hatte ich ein proto wie folgt aus:Verschiedene Versionen von Proto-Dateien

message Person { 
    required string name = 1; 
    required int32 id = 2; 
    optional string email = 3; 
} 

Jetzt muss ich es ein weiteres Feld hinzufügen, damit es so aussieht:

message Person { 
    required string name = 1; 
    required int32 id = 2; 
    optional string email = 3; 
    optional string phone = 4; 
} 

Wenn ich Personen jetzt deserialisieren, dass Wurden mit der älteren Version serialisiert wird der einzige Unterschied sein, dass hasPhone() immer falsch ist? Unter der Annahme, dass das Telefon für alle neuen Personen eingestellt wird, kann ich tatsächlich unterscheiden, ob es sich um eine alte/neue Version von Proto handelt, indem hasPhone wahr/falsch ist?

+0

Warum hast du mich mitten im Satz zitiert? :) Der Anfang war "Also angenommen, dass das Telefon für alle neuen Personen eingestellt wird ...". – user1985273

+0

Entschuldigung. Es war eine lange Nacht :) –

Antwort

2

Ja, das ist richtig.

Sie können auch getPhone() verwenden und prüfen, ob die Zeichenfolge leer ist, da die leere Zeichenfolge der Standardwert für Felder mit Zeichenfolgen ist.