gpt4 book ai didi

java - Apache Avro : map uses CharSequence as key

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:30:25 27 4
gpt4 key购买 nike

我正在使用 Apache Avro .

我的模式有 map 类型:

{"name": "MyData", 
"type" : {"type": "map",
"values":{
"type": "record",
"name": "Person",
"fields":[
{"name": "name", "type": "string"},
{"name": "age", "type": "int"},

]
}
}
}

编译模式后,生成的 Java 类使用 CharSequence 作为 Map MyDatakey

使用Map中的CharSequence作为key很不方便,有没有办法为Map生成String类型的key Apache Avro

附言

问题是,例如 dataMap.containsKey("SOME_KEY") 将返回 false 即使那里有这样的键,只是因为它是 CharSequence 。此外,使用现有 key 放置 map 条目不会替换旧 key 。这就是为什么我说使用 CharSequence 作为键是不方便的。

最佳答案

This JIRA discussion是相关的。 CharSequence 仍在使用的要点是向后兼容性

正如 Charles Forsythe 指出的那样,通过在架构中设置字符串属性,添加了一个解决方法,用于何时需要 String。

 { "type": "string", "avro.java.string": "String" }

这里默认的类型是自己的utf8类。除了手册规范和the pom.xml setting ,甚至还有一个 avro-tools 编译选项,-string 选项:

java -jar avro-tools.1.7.5.jar compile -string schema /path/to/schema .

关于java - Apache Avro : map uses CharSequence as key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19728853/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com