gpt4 book ai didi

java - 从未调用过序列化方法

转载 作者:行者123 更新时间:2023-12-02 07:56:07 24 4
gpt4 key购买 nike

我需要从静态 HashMap 序列化数据。我需要这个静态数据,因为我没有该 map 存在的类的实例。我实现了可序列化接口(interface)并构建了这两个方法:

private synchronized void writeObject( ObjectOutputStream out ) throws IOException
{
System.out.println("start serialization ...");

Collection<TaskUpdateListener> tasks = listeners.values();
out.writeInt( tasks.size() );
for(TaskUpdateListener task : tasks)
{
out.writeObject( task );
}
}

private synchronized void readObject( ObjectInputStream in ) throws IOException, ClassNotFoundException
{
System.out.println("start deserialization ...");

int size = in.readInt();
for( int index = 0; index < size; index++)
{
addTaskUpdateListener( (ComponentScheduleTable) in.readObject() );
}
}

但是这个方法永远不会被调用。有没有人遇到同样的问题或解决方案?

最佳答案

尝试

private  void writeObject( ObjectOutputStream out ) throws IOException
{

System.out.println("start serialization ...");

Collection<TaskUpdateListener> tasks = listeners.values();
out.writeInt( tasks.size() );
for(TaskUpdateListener task : tasks)
{
out.writeObject( task );
}

}

Synchronized关键字不是必需的,方法在同步块(synchronized block)中调用。

关于java - 从未调用过序列化方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9619358/

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