将此方法更改为通用(无集合)

时间:2013-09-18 18:11:39

标签: java generics

我有以下方法,它使用gson克隆对象进行深层复制。有没有办法使这个方法通用,或者泛型只适用于属于集合的对象?

private Order gsonClone(Order t) {
    Gson gson = new Gson();
    String json = gson.toJson(t);
    return gson.fromJson(json, t.getClass());
}

1 个答案:

答案 0 :(得分:3)

您可以通过声明泛型参数来使任何方法或类通用。由于您需要该类,因此将其作为单独的参数传递:

private <T> T gsonClone(T t, Class<T> type) {
    Gson gson = new Gson();
    String json = gson.toJson(t, type);
    return gson.fromJson(json, type);
}