使用android包时,为什么序列化堆栈反序列化为ArrayList?

使用android包时,为什么序列化堆栈反序列化为ArrayList?,第1张

概述连载:BundleactivityArguments=newBundle();Stack<Class<?extendsWizardStep>>wizardSteps=newStack<Class<?extendsWizardStep>>();wizardSteps.push(CreateAlarmStep5View.class);wizardSteps.push(CreateAlarmStep

连载:

Bundle activityArguments = new Bundle();Stack<Class<? extends WizardStep>> wizardSteps = new Stack<Class<? extends WizardStep>>();        wizardSteps.push(CreatealarmStep5VIEw.class);        wizardSteps.push(CreatealarmStep4VIEw.class);        wizardSteps.push(CreatealarmStep3VIEw.class);        wizardSteps.push(CreatealarmStep2VIEw.class);        wizardSteps.push(CreatealarmStep1VIEw.class);        activityArguments.putSerializable("WizardSteps", wizardSteps);

Deserialisation:

Stack<Class<? extends WizardStep>> wizardSteps = (Stack<Class<? extends WizardStep>>) getIntent().getExtras().getSerializable("WizardSteps");

例外:

12-20 23:19:45.698:E / AndroIDRuntime(12145):引起:java.lang.classCastException:java.util.ArrayList无法强制转换为java.util.Stack

解决方法:

它的知名度为bug.我很惊讶它仍然存在.

使用通用容器,如:

public class SerializableHolder implements Serializable {private Serializable content;public Serializable get() {    return content;}public SerializableHolder(Serializable content) {    this.content = content; }}

如果您使用GSON库,请将Stack转换为String并将其用作Bundle的单个String,而不使用Serialize.它应该工作.

总结

以上是内存溢出为你收集整理的使用android包时,为什么序列堆栈反序列化为ArrayList?全部内容,希望文章能够帮你解决使用android包时,为什么序列化堆栈反序列化为ArrayList?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1098130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存