我将一个TreeMap放入Intent中:
private TreeMap<Long, Long> mSelectedItems;
...
mSelectedItems = new TreeMap<Long, Long>();
...
Intent intent = new Intent();
intent.putExtra("results", mSelectedItems);
setResult(RESULT_OK, intent);
接着在调用活动中尝试读取它:
TreeMap<Long, Long> results = (TreeMap<Long, Long>)
data.getSerializableExtra("results");
这会导致:
E/AndroidRuntime(26868): Caused by: java.lang.ClassCastException: java.util.HashMap cannot be cast to java.util.TreeMap
当然,但是既然我在代码中没有使用HashMap,而TreeMap实现了Serializable接口,这应该可以无误地运行,不是吗?为什么Android试图强制让我使用一个我没有使用的类?