我目前正在研究一個大應用程序,並且發現了一些細節。可以將數組序列化並將其放入一個包中。然後把它放在一個意圖,並開始活動。但在接收端,我必須通過痛苦的2步程序來反序列化數組。在Android上反序列化陣列
MyObj[] data = (MyObj[])bundle.getSerializable("key"); // doesn't work
Object[] temp = (Object[])bundle.getSerializable("key");
MyObj[] data2 = (MyObj[])temp, // doesn't work
MyObj[] data3 = new MyObj[temp.length]; // does work
for(int i = 0; i < temp.length; i++) {
data3[i] = (MyObj)temp[i];
}
那是我必須經歷通過數組循環的原因是什麼?
這是不是一個Android特定的一個一般的Java問題一。谷歌搜索「Java鑄造陣列」將爲您的問題提供答案。 Java根本不允許向下投射陣列。 –
相關http://stackoverflow.com/questions/1115230/casting-object-array-to-integer-array-error – Gray