0

私はメッセージとして文字列を送信することしかできないように見えるキュー サービスを使用しています (それは正しいとは思いませんが、それ以外のことを証明することはできませんでした)。 work (int、double、および int[])。そのため、3 つのデータ型すべてを取得し、 を使用してそれらを文字列に変換しますArrays.toString

私の問題は、ワーカー プロセスがメッセージを受け取ると、それらを元に戻す必要があることです。ワーカーはこれを見ます:[0, 43.0, [0, 59, 16]]しかし、それを最も効率的に変換する方法がわかりません。私が現在行っている方法は、最初と最後の文字を削除してString[] temp = queue_string.split(",");から、リストとして戻すことです。

この方法が唯一の方法であれば問題ありませんが、よりクリーンな方法があるかどうか疑問に思っていますか? のような Arrays.toStringものがあります String.toArray(これは存在しません、私はすでに試しました:-)

4

1 に答える 1

4

プロセス間でやり取りされるデータのフォーマットは、JSON のような標準を使用するのが最善だと思います。データは、文字列からネイティブ データ型に簡単にマーシャリングし、Java に戻すことができます。

Gson gson = new Gson();

int[] sub = { 0, 59, 16 };
Object[] values = { 0, 43.0, sub };
String output = gson.toJson(values);       // => [0, 43.0,[0,59,16]]

Object[] deserialized = gson.fromJson(output, Object[].class);
for ( Object obj : deserialized ) {
    // => 0.0, 43.0, [0.0, 59.0, 16.0]
}
于 2012-04-15T04:55:57.417 に答える