簡體   English   中英

Apache Avro 的 Java 中 Union 的默認值是多少?

[英]What is the default value for Union in Java for Apache Avro?

我正在嘗試為一個字段設置默認值(使用 Java),但我遇到了一個令人討厭的異常:

線程“main”中的異常 org.apache.avro.AvroTypeException:字段第一的默認值無效:“Andy”不是 [“null”,“string”]

在 org.apache.avro.Schema.validateDefault(Schema.java:1542)

Apache Avro 的文檔:Unions說:

如上所述,聯合使用 JSON 數組表示。 例如, ["null", "string"] 聲明一個模式,它可以是空值或字符串。

(請注意,當為類型為聯合的記錄字段指定默認值時,默認值的類型必須與聯合的第一個元素匹配。因此,對於包含“null”的聯合,通常會列出“null”首先,因為此類聯合的默認值通常為 null。)

誰能告訴我為什么默認值的類型必須與聯合的第一個元素匹配?

似乎您需要更改為 ["string","null"] 作為默認值將是第一個,您的默認值是字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM