如何序列化单例对象?

时间:2012-02-24 15:26:59

标签: java serialization

我正在实现某种AdressBook,并希望将自己实现的某种数据库中的所有联系人保存为单身HashMap<String, Contact> contactsDB。是否可以序列化这样的对象?

4 个答案:

答案 0 :(得分:2)

请注意,如果你这样做,你提供了一种循环你的类的单例的方法(代码不再需要通过getObject方法来确保只创建了一个对象,它不能,单独地,将序列化对象反序列化为)。

答案 1 :(得分:0)

查看java serializable API。如果您的自定义类实现'可序列化',我认为你很好

答案 2 :(得分:0)

不要序列化单例本身,序列化单例行为的基础数据。

答案 3 :(得分:0)

这里有一些东西

// assume that the signleton is actually implemented correctly.
public class IHateSingletons
{
  Map<String, Contact> contactMap;

  public void storeThatStuffs(final ObjectOutputStream outputStream)
  {
    outputStream.writeObject(contactMap);
  }

  public void readThatStuffs(final ObjectInputStream inputStream)
  {
    contactMap = (Map<String, Contact>)inputStream.readObject();
}