反序列化抛出 java.lang.ClassCastException

Deserializing throws java.lang.ClassCastException

我在 android 设备上保存序列化 class。将其传输到 win 10 PC 并通过以下方式加载文件:

fis = new FileInputStream(result.get(i));
ois = new ObjectInputStream(fis);
Object obj = ois.readObject();

class 在 Android 和 win 10 是:

public class ImgLogFile implements Serializable{

        byte[] frame;
        byte[] result;
        String config;

    public String getConfig(){
            return config;
        }

    public byte[] getFrame() {
        return frame;
    }

    public byte[] getResult() {
        return result;
    }
} 

当我尝试将加载的对象投射到它的 class 中时,我得到:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: class [Lde.mtt.smartiePlatform.ImgLogFile; cannot be cast to class de.mtt.smartiePlatform.ImgLogFile ([Lde.mtt.smartiePlatform.ImgLogFile; and de.mtt.smartiePlatform.ImgLogFile are in unnamed module of loader 'app')

我注意到一条路前面有"L",但不知道是什么意思。 我怎样才能解决这个问题 ?

[...] class [Lde.[...] cannot be cast to class de.[...]

[表示数组。 [L后面是引用类型的数组。

所以您已经序列化了一个数组,并试图将反序列化的对象转换为非数组的类型。

(此外,使用 Java 序列化也不是一个好主意。)