Android getParcelableExtra的奇怪行为(键X应为ParcelableExtra,但值为Y)
有人能解释一下为什么这个代码不起作用吗Android getParcelableExtra的奇怪行为(键X应为ParcelableExtra,但值为Y),android,android-intent,parcelable,Android,Android Intent,Parcelable,有人能解释一下为什么这个代码不起作用吗 Intent i=新的Intent(this.context,SomeClass.class); HashMap tmp1=新的HashMap(); Log.d(标记“IN:”+String.valueOf(tmp1)); i、 putExtra(“VAR”,tmp1); HashMap tmp2=i.getParcelableExtra(“VAR”); Log.d(标记“OUT:+String.valueOf(tmp2)); 我期望得到的是: Has
Intent i=新的Intent(this.context,SomeClass.class);
HashMap tmp1=新的HashMap();
Log.d(标记“IN:”+String.valueOf(tmp1));
i、 putExtra(“VAR”,tmp1);
HashMap tmp2=i.getParcelableExtra(“VAR”);
Log.d(标记“OUT:+String.valueOf(tmp2));
我期望得到的是:
- HashMap是可分组的<代码>tmp1应等于
tmp2
- 调试:在:{}
- 警告:键
应为VAR
,但值为Parcelable
。返回了默认值java.util.HashMap
- 警告:尝试强制转换生成的内部异常:
java.lang.ClassCastException:java.util.HashMap
- 调试:OUT:null
HashMap
不是Parcelable
。但是,它是可序列化的,因此您将一个可序列化的放在了额外的位置,并试图将其作为一个可打包的读取,这导致了错误。我认为您错了,HashMap
不是可打包的。但是,它是可序列化的,因此您要额外放置一个可序列化的,并试图将其作为可打包的读取,这会导致错误