import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.SerializationUtils;
import java.io.IOException;
import java.io.Serializable;
public class DeepCopyUtils {
public static <T extends Serializable> T deepCopyWithSerializable(T object) {
return SerializationUtils.clone(object);
}
// 这里用jackson进行反射,这种方式可能会java.lang.StackOverflowError
public static <T> T deepCopyWithJackson(T object) {
ObjectMapper objectMapper = new ObjectMapper();
try {
return objectMapper
.readValue(objectMapper.writeValueAsString(object), new TypeReference<T>() {
});
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}
}

1286

被折叠的 条评论
为什么被折叠?



