当Singleton模式类实现Serializable
来源:互联网 发布:web页面和数据库表 编辑:程序博客网 时间:2024/05/16 16:07
package com.yinbodotcc;
import java.io.*;
public class CopyDog
{ // Not to be confused with copycat
public static void main(String[] args)
{
Dog newDog = (Dog) deepCopy(Dog.INSTANCE);
System.out.println(newDog == Dog.INSTANCE);
System.out.println(newDog);
}
// This method is very slow and generally a bad idea!
static public Object deepCopy(Object obj)
{
try
{
ByteArrayOutputStream bos =new ByteArrayOutputStream();
new ObjectOutputStream(bos).writeObject(obj);
ByteArrayInputStream bin =new ByteArrayInputStream(bos.toByteArray());
return new ObjectInputStream(bin).readObject();
}
catch(Exception e)
{
throw new IllegalArgumentException(e);
}
}
}
class Dog implements Serializable
{
public static final Dog INSTANCE = new Dog();
private Dog() {}
public String toString()
{
return "Woof";
}
//如果没有下面的这个部分,则会打印为false,说明真的不是Singleton
private Object readResolve()
{
return INSTANCE;
}
}
- 当Singleton模式类实现Serializable
- Delphi实现Singleton模式
- Singleton模式实现分析
- 实现Singleton模式
- Singleton 模式实现
- C++实现Singleton模式
- Singleton模式实现方式
- Singleton模式实现
- 实现Singleton模式
- C#实现Singleton模式
- 实现Singleton模式
- C++实现Singleton模式
- 实现Singleton模式
- 02 实现 Singleton 模式
- Python实现Singleton模式
- 2.实现Singleton模式
- 实现Singleton模式
- 【C++】实现Singleton模式
- windows页面的缓存
- javascript如何访问jsf组件
- 学习计划
- Oracle经验集锦
- oracle概念和术语
- 当Singleton模式类实现Serializable
- freebsd+adsl+nat
- Sun App Server Error解决方案
- js选择日期
- freebsd+adsl+nat(补充)
- 为什么要始终使用PreparedStatement代替Statement
- hibernate无主键查询
- FREEBSD常用工具和命令
- [sql server]在一个只有自增字段的表里插入数据