首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ConcurrentLinkedQueue: NotSerializableException

ConcurrentLinkedQueue: NotSerializableException
EN

Stack Overflow用户
提问于 2015-07-31 21:00:43
回答 2查看 327关注 0票数 0

我需要序列化ConcurrentLinkedQueue。

代码语言:javascript
复制
public class Service implements Serializable { 
    private static Queue<Message> messages = new ConcurrentLinkedQueue<>(); 

    public class Serialize {
        public static Queue<Message> getMessages() 
        { 
            return messages; 
        } 
    }
}

试着:

代码语言:javascript
复制
FileOutputStream fos = new FileOutputStream("filename");
ObjectOutputStream oos = new ObjectOutputStream(fos);

oos.writeObject(Service.Serialize.getMessages());

结果:

java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:441) at java.util.concurrent.ConcurrentSkipListMap.writeObject(ConcurrentSkipListMap.java:1430) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)在java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)

如何?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-31 22:55:27

在这个类中的某个地方,您忽略了发布,您正在使用并试图序列化一个匿名内部类,这显然是异常声明的。

票数 0
EN

Stack Overflow用户

发布于 2015-07-31 21:13:38

也许您应该摆脱内部类序列化,并将方法放在服务中。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31755117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档