私は他人をシリアライズするモジュールを書いています。私はすべてのことができています。多次元配列をどのように非直列化するべきかは不明です。Javaが助けます多次元配列をデシリアライズ
問題がある、私は(そのようなオブジェクトとして、各ノードの他の属性、SUIDが、私は簡単のために除外したことがあります。)このような何かをデシリアライズする必要が
<var object="[[I">
<_0 object="[I">
<_0 object="java.lang.Integer">1</_0>
<_1 object="java.lang.Integer">2</_1>
</_0>
<_1 object="[I">
<_0 object="java.lang.Integer">3</_0>
<_1 object="java.lang.Integer">4</_1>
</_1>
</var>
「
各ノード上の「オブジェクト」属性は、それがどのオブジェクトであるかを記述する。プリミティブ型の配列の場合は、の括弧で始まります。それぞれの括弧はその深さのカウントを表します。私は:
type int[][] = [[I
type int[] = [i
問題は、私はどのように私はプログラムでxの深さの配列を作成するのか分からないのですか?私はそれをそれはおそらくのようなものになるだろう私の方法しなければならなかった場合つまり、:
switch(iArrayDepth)
{
case 1:
return new ArrayList<Integer>();
case 2:
return new ArrayList<ArrayList<Integer>>();
case 3:
return new ArrayList<ArrayList<ArrayList<Integer>>>();
etc...
}
それを行うためのより良い方法があるに違いありません:私はこの配列をUnboxのために必要がある場合S
別の問題が発生し、それをプリミティブ型の多次元配列にする。