gpt4 book ai didi

java - 何时覆盖 writeObject/readObject?

转载 作者:行者123 更新时间:2023-12-02 00:22:00 27 4
gpt4 key购买 nike

似乎是一个非常简单的问题,但我在谷歌上找不到直接答案。

我在两个进程之间通过 UDP 有一个简单的 IPC channel 。每条消息都包装在 header 类中(例如数据驱动)。

例如。

enum Type 
{
HELLO,
BYE,
LISTEN,
}

class Message
{
Type type;
Object data;
}

Message是我发送到 ObjectOutputStream writeObject 的内容。这对于没有 data 的消息效果很好。有效负载(例如 HELLOBYE )。然而LISTEN消息设置 data属性到自定义类(具有所有 POD 类型),并且它似乎永远不会到达其他进程。当我 readObject另一方面我什么也没得到。

所以我的问题是我需要一个工具writeObjectreadObject在我的里面Message类和/或 data's 内类类型?

--- 更新 1 ---

是的,Message类型和基础 data类型有implements Serializable所有 eclipse 都会生成 serialVersionUID为我。这样就足够了吗?我仍然没有看到 data消息的一部分。

最佳答案

确保写入 ObjectOutputStream 的所有对象都是可序列化

Javadoc明确指出:

Only objects that support the java.io.Serializable interface can be written to streams.

确保类消息实现SerializedExternalizable界面。

<小时/>

根据您的更新,对象数据是一个对象,默认情况下,对象不是可序列化 。您可以将其声明为可序列化数据。如前所述,只有可序列化的对象才能写入 OutputStream

关于java - 何时覆盖 writeObject/readObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10770120/

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