Apache Thrift 中的自定义容器类型
Custom container type in Apache Thrift
如何使用 Apache Thrift 编写自定义容器类型?
我知道,默认情况下,Thrift 中的任何映射声明都会扩展 HashMap。
有没有办法修改它以扩展 ConcurrentHashMap 而不是 HashMap?
例如,如果 Test.thrift 定义如下:
构造测试数据
{
1:字符串标识,
2:地图详情
}
如何确保此映射作为 ConcurrentHashMap 实现?
谢谢!
有树预定义的容器类型(list<R>
、set<T>
和 map<K,V>
),它们与合适的、特定于语言的实现相关联。
虽然 Thrift 确实允许您以多种方式自由构建 struct
s,但没有对基本 IDL 数据类型 和容器的扩展。
某些语言绑定,例如 C++,允许通过 IDL 注释自定义 容器实现(即 类 在生成的代码中实际使用)。但是,只有一小部分语言支持此功能,AFAIK Java 不是其中之一。
How can I make sure that this map is implemented as a ConcurrentHashMap?
您需要更改 Thrift 编译器或post-以某种方式处理生成的代码工件。
如何使用 Apache Thrift 编写自定义容器类型?
我知道,默认情况下,Thrift 中的任何映射声明都会扩展 HashMap。
有没有办法修改它以扩展 ConcurrentHashMap 而不是 HashMap?
例如,如果 Test.thrift 定义如下:
构造测试数据 { 1:字符串标识, 2:地图详情 }
如何确保此映射作为 ConcurrentHashMap 实现?
谢谢!
有树预定义的容器类型(list<R>
、set<T>
和 map<K,V>
),它们与合适的、特定于语言的实现相关联。
虽然 Thrift 确实允许您以多种方式自由构建 struct
s,但没有对基本 IDL 数据类型 和容器的扩展。
某些语言绑定,例如 C++,允许通过 IDL 注释自定义 容器实现(即 类 在生成的代码中实际使用)。但是,只有一小部分语言支持此功能,AFAIK Java 不是其中之一。
How can I make sure that this map is implemented as a ConcurrentHashMap?
您需要更改 Thrift 编译器或post-以某种方式处理生成的代码工件。