【发布时间】:2016-06-09 08:42:30
【问题描述】:
我必须多次克隆一个对象。我的对象是不可序列化的。我正在使用以下功能
@SuppressWarnings("unchecked")
public static T cloneThroughJson(T t) {
Gson gson = new Gson();
String json = gson.toJson(t);
return (T) gson.fromJson(json, t.getClass());
}
// ...
Object cloned = cloneThroughJson(someObject);
我发现这每次都会返回对同一个对象的引用。例如
假设我首先调用它为cloneThroughJson(x)
它返回Y
我再次在同一个函数中调用它cloneThroughJson(x)。它再次返回Y。
你知道如何在 java 中使用深度克隆克隆不可序列化的对象吗?
【问题讨论】:
-
你能提供一个minimal reproducible example吗?你怎么知道它返回的是同一个实例?