我目前正在研究一个大应用程序,并且发现了一些细节。可以将数组序列化并将其放入一个包中。然后把它放在一个意图,并开始活动。但在接收端,我必须通过痛苦的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