1. 实现深clone
import lombok.Data;
import lombok.SneakyThrows;
import org.apache.commons.lang3.SerializationUtils;
import java.io.Serializable;
@Data
public class TestVO implements Cloneable, Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private ComplexVO complexVO;
@SneakyThrows
@Override
public TestVO clone() {
return SerializationUtils.clone(this);
}
}
2. 实现浅clone
2.1 方法一
import lombok.Data;
import lombok.SneakyThrows;
import java.io.Serializable;
@Data
public class TestVO implements Cloneable, Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private ComplexVO complexVO;
@SneakyThrows
@Override
public TestVO clone() {
return (TestVO)super.clone();
}
}
2.1 方法二
import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.io.Serializable;
@Data
public class TestVO implements Cloneable, Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private ComplexVO complexVO;
@SneakyThrows
@Override
public TestVO clone() {
TestVO clone = new TestVO();
BeanUtils.copyProperties(this,clone);
return clone ;
}
}