package com.lulu.prototype;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class Mokey implements Cloneable,Serializable {
private String name;
private List<String> nameList = new ArrayList<String>();
public Mokey(String name) {
this.name = name;
this.nameList.add(this.name);
}
public void setName(String name) {
this.name = name;
this.nameList.add(name);
}
public String getName() {
return this.name;
}
public List<String> getNameList() {
return this.nameList;
}
/**
* 浅拷贝
*/
@Override
public Mokey clone() {
Mokey mokey = null;
try {
mokey = (Mokey)super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
throw new RuntimeException("拷贝错误!");
}
return mokey;
}
/**
* 深拷贝
* @return
*/
public Mokey copy() {
Mokey mokey = null;
ByteArrayOutputStream baos = null;
ObjectOutputStream oos = null;
ByteArrayInputStream bais = null;
ObjectInputStream ois = null;
try {
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
oos.writeObject(this);
bais = new ByteArrayInputStream(baos.toByteArray());
ois = new ObjectInputStream(bais);
mokey = (Mokey) ois.readObject();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("io异常");
} catch (ClassNotFoundException e) {
e.printStackTrace();
throw new RuntimeException("类型转化异常");
} finally {
try {
ois.close();
bais.close();
oos.flush();
oos.close();
baos.close();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("io异常");
}
}
return mokey;
}
}
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class Mokey implements Cloneable,Serializable {
private String name;
private List<String> nameList = new ArrayList<String>();
public Mokey(String name) {
this.name = name;
this.nameList.add(this.name);
}
public void setName(String name) {
this.name = name;
this.nameList.add(name);
}
public String getName() {
return this.name;
}
public List<String> getNameList() {
return this.nameList;
}
/**
* 浅拷贝
*/
@Override
public Mokey clone() {
Mokey mokey = null;
try {
mokey = (Mokey)super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
throw new RuntimeException("拷贝错误!");
}
return mokey;
}
/**
* 深拷贝
* @return
*/
public Mokey copy() {
Mokey mokey = null;
ByteArrayOutputStream baos = null;
ObjectOutputStream oos = null;
ByteArrayInputStream bais = null;
ObjectInputStream ois = null;
try {
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
oos.writeObject(this);
bais = new ByteArrayInputStream(baos.toByteArray());
ois = new ObjectInputStream(bais);
mokey = (Mokey) ois.readObject();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("io异常");
} catch (ClassNotFoundException e) {
e.printStackTrace();
throw new RuntimeException("类型转化异常");
} finally {
try {
ois.close();
bais.close();
oos.flush();
oos.close();
baos.close();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("io异常");
}
}
return mokey;
}
}