扩展hashmap + serializable问题

时间:2012-07-06 14:18:55

标签: android serialization hashmap

我扩展了hashmap(比方说,MyClass):

public class MyClass extends HashMap<String, String>
 {
   // something
 }

现在,在一个活动中,我将此类的对象添加到extras(我可以这样做,因为HashMap是可序列化的):

活动A:

  MyClass myClass=new MyClass();
  ...
  Intent i = getIntent();
            i.putExtra("key", myClass);
            setResult(RESULT_OK, i);
            finish();

在活动B中(在onActivityResult中)我检索了值:

  Object o=data.getSerializableExtra("key");

我的问题是o不是MyClass,而是HashMap。我希望它是MyClass,但每当我认为o是MyClass的实例时,我得到ClassCastException:

  MyClass o=(MyClass) data.getSerializableExtra("key");

为什么它返回超类实例?

堆栈:

07-06 18:32:58.539: E/AndroidRuntime(25268): Caused by: java.lang.ClassCastException: java.util.HashMap
07-06 18:32:58.539: E/AndroidRuntime(25268):    at ...Search.onActivityResult(Search.java:158)
07-06 18:32:58.539: E/AndroidRuntime(25268):    at android.app.Activity.dispatchActivityResult(Activity.java:3890)
07-06 18:32:58.539: E/AndroidRuntime(25268):    at android.app.ActivityThread.deliverResults(ActivityThread.java:3511)

0 个答案:

没有答案