解析消息時,如果編碼消息不包含特定的單數元素,則解析對象中的相應字段將設置為該字段的默認值。這些默認值是特定於類型的:
-
對於字符串,默認值為空字符串。
-
對於字節,默認值為空字節。
-
對於布爾,默認值為false。
-
對於數字類型,默認值為零。
-
對於枚舉,默認值是第一個定義的枚舉值,必須為0。
-
對於消息字段,該字段未設置。它的確切值取決於語言。有關詳細信息,請參見生成的代碼指南。
重復字段的默認值為空(通常是相應語言的空列表)。
請注意,對於標量消息字段,一旦消息被解析,就無法判斷字段是顯式設置為默認值(例如,布爾值是否設置為false )還是根本沒有設置:定義消息類型時應該記住這一點。例如,如果不希望默認情況下也發生某些行為,不要有一個布爾值在設置為false時打開該行為。另請注意,如果標量消息字段設置為默認值,則不會在線路上序列化該值。
注: 如果類型為string, 當為null時不做set操作操作解析時默認"",如果做了set操作,則無法進行setXXX(null)
有關默認如何在生成的代碼中工作的詳細信息,請參閱所選語言的生成代碼指南。
