apacheavro的Java中Union的默认值是什么?

apacheavro的Java中Union的默认值是什么?,java,avro,Java,Avro,我正在尝试设置字段的默认值(使用Java),但遇到了一个严重的异常: 线程“main”org.apache.avro.AvroTypeException中的异常:第一个字段的默认值无效:“Andy”不是[“null”,“string”] 位于org.apache.avro.Schema.validateDefault(Schema.java:1542) 文件说明: 如上所述,联合使用JSON数组表示。对于 例如,[“null”,“string”]声明的模式可能是 空或字符串 (请注意,如果为记录

我正在尝试设置字段的默认值(使用Java),但遇到了一个严重的异常:

线程“main”org.apache.avro.AvroTypeException中的异常:第一个字段的默认值无效:“Andy”不是[“null”,“string”]

位于org.apache.avro.Schema.validateDefault(Schema.java:1542)

文件说明:

如上所述,联合使用JSON数组表示。对于 例如,[“null”,“string”]声明的模式可能是 空或字符串

(请注意,如果为记录字段指定了默认值 类型是一个联合,默认值的类型必须与第一个匹配 因此,对于包含“null”的联合,“null” 通常首先列出,因为此类联合的默认值为 通常为空。)

有人能告诉我为什么默认值的类型必须与联合的第一个元素匹配吗?

似乎您需要更改为[“string”,“null”],因为默认值是第一个,默认值是string