当前位置: 首页 > 知识库问答 >
问题:

在android中安全反序列化LinkedHashMap

爱炯
2023-03-14
    @Override
    public void onSaveInstanceState(Bundle savedInstanceState) {
        super.onSaveInstanceState(savedInstanceState);
        if(thumbnails != null) {
            savedInstanceState.putSerializable("thumbnails", thumbnails);
        }
    }
thumbnails = (LinkedHashMap<Long, Bitmap>)savedInstanceState.getSerializable("thumbnails");

从捆绑包反序列化LinkedHashMaps的正确方法是什么?完全可以做到吗?如果不是,我如何保持顺序而不在中间添加另一层来跟踪位置,这将涉及更改大量现有代码?

` Caused by: java.lang.ClassCastException: java.util.HashMap cannot be cast to java.util.LinkedHashMap`

共有1个答案

巫马星雨
2023-03-14

从MVC(模型--视图--控制器)的角度来看,活动是一个控制器。(片段也是如此。)该视图是由您重用的XML和Android视图子类创建的(人们很少定义自定义视图子类)。模型是--嗯,你必须自己为模型定义一个类!如果你有模型,你会从不同的角度来看。

但是,如果您仍然希望将数据从一个活动化身传递到另一个活动化身--那么,为什么不使用JSONObject/JSONArray呢?这是矫枉过正,会很慢,但至少应该管用。

另一种可能是将LinkedHashMap转换为键值对列表,然后根据该列表重新构造它。

 类似资料:
  • 问题内容: 我尝试过在Java和Android之间实现跨平台序列化。我使用了Serializable,并将我的代码在Android中与台式机Java放在同一软件包中。 来源:java-desktop序列化 资料来源:Android-反序列化 学生是一类,实现了Serializable。在桌面上,我将学生实例序列化为“ thestudent.dat”。我将此文件放在Android设备上的SD卡上,并

  • 问题内容: 在这种情况下是否可能发生任何安全漏洞利用: str对象在哪里。该字符串是用户生成的,可能令人讨厌。假设我们的网络框架没有让我们失败,那是一个来自Python内置函数的真正诚实的str实例。 如果这样做很危险,我们可以对输入进行任何操作以使其安全吗? 我们当然 不 希望执行字符串中包含的任何东西。 对于这个问题,我认为不是必不可少的更大范围是,我们有成千上万个这样的环境: 在某些情况下嵌

  • 问题内容: 我正在尝试从此graphml创建节点和边缘对象。我有一些很棒的建议,告诉我在进一步研究中使用多个软件包,因为这是我用于simplexml的android实现。 http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php#nested 我从节点开始。我已经创建了节点类: 在我的mainActivity中,

  • 问题内容: 我已经开始在我的第一个android应用程序上进行工作,并且具有处理多层图像的应用程序。我能够将项目文件的平面版本导出为PNG,但我希望能够保存分层图像以供以后编辑(包括应用于某些层的任何选项,例如基于文本的层)。 无论如何,我已经确保需要写入文件的类是“可序列化的”,但是由于android.graphics.Bitmap不可序列化这一事实而遇到了一些障碍。以下代码实质上将位图作为PN

  • 我有两个Java应用程序-和。需要通过套接字发送到类的Slave实例。 Master创建这个类的实例,序列化它并通过套接字发送到Slave。 在上,一切正常。没有异常。接收数据并尝试对其进行反序列化。引发以下异常 JAVAlang.ClassNotFoundException 在类中没有错误,因为如果我用优化函数=null创建它,那么就会毫无问题地反序列化它。我试图将实例序列化到中的文件中,然后也

  • 我想反序列化表单中的类: 其中文本是加密的,反序列化应该在重建TestFieldEncryptedMessage实例之前取消对值的加密。 我采用的方法非常类似于:https://github.com/codesqueak/jackson-json-crypto 也就是说,我正在构建一个扩展SimpleModule的模块: 如您所见,设置了两个修饰符:EncryptedSerializerModif