android - IllegalAccessException - 从不可序列化继承的对象的序列化

标签 android serialization deserialization

我得到 android.widget.ImageView;尝试反序列化我之前序列化的对象时出现 IllegalAccessException

        File presetFile = new File("pathToFile");

        FileInputStream fis = new FileInputStream(presetFile);      
        ObjectInputStream ois = new ObjectInputStream(fis);
        Preset preset = (Preset) ois.readObject();

我猜测ImageView有一些限制,解释如下:

public class Preset implements Serializable {

    private Date dateOfCreation;
    private int bpm;
    private SoundSwitch[][] switches;

最后是 SoundSwitch 类头

public class SoundSwitch extends ImageView implements Serializable{
}

是不是因为我继承的ImageView没有实现Serializable?我是否必须放弃反序列化此类对象?

最佳答案

这是因为您继承的 ImageView 是不可序列化的并且没有公共(public)的无参数构造函数。显然它有一个 protected 或包访问或私有(private)的。

关于android - IllegalAccessException - 从不可序列化继承的对象的序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11908353/

相关文章:

java - 如何在没有类文件的情况下从序列化的 Java 对象中检索对象状态

serialization - 用于反序列化的 JsConfig.EmitLowercaseUnderscoreNames

android - webview 加载不出来的问题

java - 在 MPAndroidChart 中自定义 Legend

serialization - Flink流: Unexpected charaters in serialized String messages

mysql - 产品 alpha-num 序列号的数学运算 |数据库设计

java - 将基类从java中的反序列化集合转换为继承类

java - 滚动时如何在recyclerview中保持阴影

java - Android studio项目,按钮不起作用

c++ - C++ 中的简单序列化示例