首页 > 解决方案 > 在 Java 中深度克隆通用数据

问题描述

我有一个这样的通用列表:

List<E> data;

我想对列表中的单个元素进行深度复制,但我不能使用外部库,我不想使用序列化副本。我的问题是有没有办法做到这一点?

标签: java

解决方案


您需要一个Function<E, E>(或一个UnaryOperator<E>)“知道”如何深度克隆列表元素。

Function<E, E> deepCloner = /* something */

然后:

List<E> clonedList = list.stream().map(deepCloner).collect(toList());

然后由您来提供合适的deepCloner. 没有通用的方法可以做到这一点,因为需要“深度克隆”的知识是特定于类型的。


推荐阅读