繁体   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