シリアル化したい場合は
http://d.hatena.ne.jp/SiroKuro/20080403/1207237637#c1207267140
ということで、Singleton オブジェクトをシリアル化したいときには、こういう風にします。
import java.io.*; public class Singleton implements Serializable { private static final Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInstance() { return instance; } public Object readResolve() throws ObjectStreamException { return instance; } }
Serializable くっつけて、readResolve という名前のメソッドを用意します。これで ObjectInputStream#readObject で返ってくるオブジェクトが、常に Singleton#instance になるという仕掛けです。
ということで Singleton 付けても readResolve を適切に実装すれば問題無い、という tips です。
댓글 없음:
댓글 쓰기