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
javai32
にマップされる 32 ビットの符号付き整数も同様int
です。
倹約には配列はありませんが、コンテナタイプがあります:
コンテナ
Thrift コンテナーは、ほとんどのプログラミング言語で一般的に使用され、一般的に利用可能なコンテナー型にマップされる、厳密に型指定されたコンテナーです。
コンテナには次の 3 つのタイプがあります。
list: 要素の順序付きリスト。STL ベクトル、Java ArrayList、スクリプト言語のネイティブ配列などに変換します。
set: 一意の要素の順序付けられていないセット。STL セット、Java HashSet、Python のセットなどに変換します。 注: PHP はセットをサポートしていないため、List と同様に扱われます。
map: 厳密に一意のキーから値へのマップ。STL マップ、Java HashMap、PHP 連想配列、Python/Ruby 辞書などに変換します。デフォルトが提供されていますが、型マッピングは明示的に固定されていません。カスタム コード ジェネレーター ディレクティブが追加され、さまざまな宛先言語でカスタム型を置換できるようになりました。
コンテナー要素は、有効な Thrift Type のいずれでもかまいません。
これらのコンテナーは、対応する Java List
、Set
およびにマップされMap
ます。
したがって、thrift を使用していて、値のコレクションを転送する必要がある場合は、 のようなint
タイプのリスト コンテナを使用します。これにより、Java 側で が生成されます。int32
list<i32>
java.util.ArrayList<Integer>
心配する必要はありません: thrift には java にマップされString
た基本型があります。したがって、 in thrift を定義するだけで、生成された Java コードが得られます。string
java.lang.String
string
java.lang.String
int[] は単純な配列で、通常は単純なことを行うために使用されます。一時データを保存します。
Williamが言ったように、i32はサードパーティのライブラリです。
特に問題がない場合は、int[] を使用することをお勧めしますが、i32 を使用する必要がある場合は、次のリンクを参照してください: http://people.apache.org/~thejas /thrift-0.9/javadoc/org/apache/thrift/protocol/TType.html