0

谁能帮我理解int[]Java 和Apache Thrift 中的i32( ) 之间的区别?NumericDataArray什么时候应该使用后者?另外,我们有类似i32字符串的东西吗?

4

2 回答 2

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和.SetMap

因此,如果您使用 thrift 并且需要传输int-values 的集合,您将使用int32like类型的列表容器list<i32>,这将在java.util.ArrayList<Integer>java 端产生 a。

不用担心String:thrift 中有一个基类型string,映射到 java java.lang.Stringstring因此,您只需在 thrift 中定义一个,您将拥有java.lang.String生成的 java 代码。

于 2013-08-14T17:55:06.147 回答
0

int[] 它是一个简单的数组,通常用于做简单的事情,例如。存储临时数据。

i32 它是一个第三方库,就像威廉说的那样。

如果您没有非常具体的问题,我建议您使用 int[],但如果您需要使用 i32,也许您可​​以看看这个链接:http ://people.apache.org/~thejas /thrift-0.9/javadoc/org/apache/thrift/protocol/TType.html

于 2013-08-14T17:06:26.967 回答