我正在編寫一個序列化其他模塊的模塊,並且我已經得到了所有工作,但我不確定如何反序列化多維數組。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...
}
必須有這樣做的更好的辦法:另一個問題是小號
,當我需要拆箱這個數組和使其成爲原始類型的多維數組。