gpt4 book ai didi

java - IKVMC,单声道 : ClassCastException while deserialization

转载 作者:太空宇宙 更新时间:2023-11-04 14:36:41 24 4
gpt4 key购买 nike

我们正在使用 Xamarin+IKVM 编译 iOS 平台的 java 代码。将之前序列化的数据反序列化到文件时,我收到 ClassCastException:

.lang.ClassCastException
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1943)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1850)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:361)
at com.kiwi.animaltown.UserAssetRenderer.deSerialize(UserAssetRenderer.java:2072)

这是我尝试序列化的类:

  public class TestSerializeClass  implements Serializable
{
/**
*
*/
private static final long serialVersionUID = -1218312212872650919L;
public int leftNonTransparentX = -1;
public TestSerializeClass()
{
}
}

对于序列化:

obOut = new ObjectOutputStream(bufferOutStream);
for(int x = 10; x < 20; x = x+1) {
TestSerializeClass obj = new TestSerializeClass();
obOut.writeObject(obj);
}

对于反序列化:

        inStr = AssetConfig.assetStorage.getFileHandle(fileName).read();
BufferedInputStream buffStr = new BufferedInputStream(inStr, 8*1024);
ObjectInputStream in = new ObjectInputStream(buffStr);

try {
Object obj;
while (true) {
obj = (TestSerializeClass)in.readObject();
}
catch...

最佳答案

我意识到我来晚了,坦白说我已经有近十年没有接触过 IKVM 了,但我确实记得当时在序列化期间遇到了类加载问题。

我们没有深入研究,而是依靠第三方序列化库来回避这个问题。我们最终对 XStream 感到满意。如今,我建议使用可移植序列化解决方案(例如,在 JSON 或 MessagePack 之上工作的解决方案)。这样,如果出现问题,您将拥有更大的自由度 - 您只需将序列化子系统替换为特定于平台的实现即可。

关于java - IKVMC,单声道 : ClassCastException while deserialization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25486198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com