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