java - 在 Java 中深度克隆通用数据
问题描述
我有一个这样的通用列表:
List<E> data;
我想对列表中的单个元素进行深度复制,但我不能使用外部库,我不想使用序列化副本。我的问题是有没有办法做到这一点?
解决方案
您需要一个Function<E, E>
(或一个UnaryOperator<E>
)“知道”如何深度克隆列表元素。
Function<E, E> deepCloner = /* something */
然后:
List<E> clonedList = list.stream().map(deepCloner).collect(toList());
然后由您来提供合适的deepCloner
. 没有通用的方法可以做到这一点,因为需要“深度克隆”的知识是特定于类型的。
推荐阅读
- python - 获取一年中一个月的第 n 个日期
- clojure - 如何使用 lein mies 开始 clojurescript repl?
- java - 使用2个api请求并在一个recyclerview中显示数据
- docker - Heroku 上的 Bitnami-docker-keycloak:Web 进程无法绑定到 $PORT(错误 R10)
- python - 如何在同步代码的龙卷风中使用 Process Pool Executor?
- python-3.x - 通过基于条件生成可能的组合将数据帧拆分为多个数据帧
- python - Kivy 使用 RecycleView 的 CheckBox 问题
- c# - 来自主模型的 C# 子模型
- c++ - 在 .cpp 文件中定义整数常量的正确方法
- ios - CreateML 迁移学习模型不会在 iOS 模拟器上运行