谁能帮我理解int[]
Java 和Apache Thrift 中的i32
( ) 之间的区别?NumericDataArray
什么时候应该使用后者?另外,我们有类似i32
字符串的东西吗?
2 回答
从节俭类型
基本类型
选择基本类型的目的是简单明了而不是丰富,重点关注所有编程语言中可用的关键类型。
bool: A boolean value (true or false) byte: An 8-bit signed integer i16: A 16-bit signed integer i32: A 32-bit signed integer i64: A 64-bit signed integer double: A 64-bit floating point number string: A text string encoded using UTF-8 encoding
i32
映射到 java 的 32 位有符号整数也是如此int
。
thrift 中没有数组,但是容器类型:
容器
Thrift 容器是强类型容器,映射到大多数编程语言中常用和常用的容器类型。
共有三种容器类型:
list:元素的有序列表。转换为 STL 向量、Java ArrayList、脚本语言中的本机数组等。
set:一组无序的唯一元素。转换为 STL 集合、Java HashSet、Python 中的集合等。注意:PHP 不支持集合,因此将其视为类似于 List
map:值的严格唯一键的映射。转换为 STL 映射、Java HashMap、PHP 关联数组、Python/Ruby 字典等。虽然提供了默认值,但类型映射并未明确固定。添加了自定义代码生成器指令,以允许在各种目标语言中替换自定义类型。
容器元素可以是任何有效的 Thrift 类型。
这些容器映射到相应的JavaList
和.Set
Map
因此,如果您使用 thrift 并且需要传输int
-values 的集合,您将使用int32
like类型的列表容器list<i32>
,这将在java.util.ArrayList<Integer>
java 端产生 a。
不用担心String
:thrift 中有一个基类型string
,映射到 java java.lang.String
。string
因此,您只需在 thrift 中定义一个,您将拥有java.lang.String
生成的 java 代码。
int[] 它是一个简单的数组,通常用于做简单的事情,例如。存储临时数据。
i32 它是一个第三方库,就像威廉说的那样。
如果您没有非常具体的问题,我建议您使用 int[],但如果您需要使用 i32,也许您可以看看这个链接:http ://people.apache.org/~thejas /thrift-0.9/javadoc/org/apache/thrift/protocol/TType.html