Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java和x27之间的区别是什么;Apache Thrift中的s int[]和i32_Java_Arrays_Thrift - Fatal编程技术网

Java和x27之间的区别是什么;Apache Thrift中的s int[]和i32

Java和x27之间的区别是什么;Apache Thrift中的s int[]和i32,java,arrays,thrift,Java,Arrays,Thrift,有人能帮我理解Java中的int[]和Apache Thrift中的i32(NumericDataArray)之间的区别吗?什么时候应该使用后者?另外,我们是否有类似于字符串的i32?int[]是一个简单的数组,通常用于做简单的事情,例如存储临时数据 正如威廉所说,i32是第三方库 如果您没有非常具体的问题,我建议您使用int[],但是如果您需要使用i32,也许您可以查看以下链接:From 基本类型 选择基本类型的目的是简单明了 而不是大量,关注所有可用的关键类型 编程语言 bool: A bo

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

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

正如威廉所说,i32是第三方库

如果您没有非常具体的问题,我建议您使用int[],但是如果您需要使用i32,也许您可以查看以下链接:

From

基本类型

选择基本类型的目的是简单明了 而不是大量,关注所有可用的关键类型 编程语言

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
int
的32位有符号整数

thrift中没有数组,但容器类型:

容器

Thrift容器是强类型容器,通常映射到 大多数编程中使用的和常用的容器类型 语言

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
有三种容器类型:

列表:元素的有序列表。转换为STL向量,Java ArrayList、脚本语言中的本机数组等

集合:唯一元素的无序集合。转换为STL集,Java 注意:PHP不支持集合,所以它是 像列表一样处理

映射:值的严格唯一键的映射。转换为STL映射、Java哈希映射、PHP关联数组、, Python/Ruby字典等。虽然提供了默认值,但是 映射不是显式固定的。自定义代码生成器指令 已添加,以允许在各种类型中替换自定义类型 目标语言

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
容器元素可以是任何有效的节约类型

这些容器映射到相应的Java
列表
集合
映射

因此,如果您使用thrift并需要传输
int
-值的集合,那么您将使用
int32
类型的列表容器,如
list
,这将在java端生成
java.util.ArrayList


无需担心
String
:thrift中有一个基本类型
String
,它映射到java
java.lang.String
。因此,您只需在thrift中定义一个
string
,您将在生成的java代码中包含
java.lang.string

i32
不是一个标准的东西。首先,一个是标准的一部分,另一个是第三方API。您使用的是哪一个第三方库?我们需要它来回答你的问题。好吧,thrift中没有
NumericDataArray
,但是在thrift中有一个。你确定你正在使用/想要使用thrift吗?事实上,也有二进制文件(尽管文档中仍有其他指示),它是ByteBuffer,或者更本质上是byte[]。“为了完整起见。”粉红豹可以接受这个答案。