对于深度克隆(克隆整个对象层次结构):
commons-lang SerializationUtils-使用序列化-如果所有类都在你的控件中,并且你可以强制实施
Serializable。
Java深度克隆库 -使用反射-如果你要克隆的类或对象超出了你的控制范围(第三方库),并且你无法使其实现
Serializable,或者在你不想实现时
Serializable。
对于浅克隆(仅克隆第一级属性):
commons-beanutils BeanUtils-在大多数情况下。
Spring BeanUtils-如果你已经在使用spring,因此在类路径上有此实用程序。
我特意省略了“自己动手”选项-上面的API提供了对克隆内容和不克隆内容的良好控制(例如,使用
transient或String[] ignoreProperties),因此不建议重新发明轮子。



