import org.apache.commons.lang3.reflect.FieldUtils; public class ObjectCloneUtils { public static <T> T cloneObject(T object) throws IllegalAccessException { Class<?> objectClass = object.getClass(); T clonedObject; try { clonedObject = (T) objectClass.newInstance(); } catch (InstantiationException e) { throw new RuntimeException("Failed to clone object: " + e.getMessage()); } FieldUtils.getAllFieldsList(objectClass).forEach(field -> { try { FieldUtils.writeField(field, clonedObject, FieldUtils.readField(field, object, true), true); } catch (IllegalAccessException e) { throw new RuntimeException("Failed to clone object: " + e.getMessage()); } }); return clonedObject; } public static void main(String[] args) { Person person = new Person("John", 25); Person clonedPerson; try { clonedPerson = ObjectCloneUtils.cloneObject(person); System.out.println(clonedPerson); } catch (IllegalAccessException e) { e.printStackTrace(); } } } Maven: <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency> Gradle: groovy implementation 'org.apache.commons:commons-lang3:3.12.0'


上一篇:
下一篇:
切换中文