[英]How would i fix this Error java.lang.Object[] cannot be cast to java.lang.String[]?
[英]Why do I get a java.lang.Object[] cannot be cast to java.lang.String[][] error only in Android 4?
我的意思是,我理解錯誤,但我在 Android Lollipop 或 Marshmallow 上都沒有看到錯誤,只有在 KitKat 上才看到錯誤。
我通過一個意圖從一個活動向另一個活動發送一個二維數組,如下所示:
String[][] bidimensionalArray = new String[3][3];
public void switchActivity(MenuItem item) {
Intent intent = new Intent(this, myActivity.class);
intent.putExtra("bidimensionalArray", bidimensionalArray);
startActivity(intent);
}
而且,在接收活動中,我這樣做:
bidimensionalArray = (String[][]) getIntent().getSerializableExtra("bidimensionalArray");
同樣,這在 Android 5 和 6 上完美運行,但在 Android 4 上出錯。
從 Lollipop 開始,序列化發生了什么變化?
很明顯,這是 Android 4 中的一個尚未修復的錯誤。 為了記錄,我是在 Android 4.3.1 上嘗試這個的。
我通過將數組作為Object[]
數組並將其復制到String[][]
數組中來解決這個問題,如下所示在接收活動中:
private Object[] arrayDataObject;
private String[][] arrayData;
arrayDataObject = (Object[]) getIntent().getSerializableExtra("myArray");
arrayData = Arrays.copyOf(arrayDataObject,arrayDataObject.length,String[][].class);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.