抽象类中引用.class对象的方法

时间:2015-01-16 22:33:26

标签: java android gson

我在Android中使用GSON库,而我正在做的一个更常见的任务是序列化/反序列化对象。

Serialize非常简单:

public String serialize() {
        // Serialize this class into a JSON string using GSON
        Gson gson = new Gson();
        return gson.toJson(this);
    }

Unserialize必须像这样引用.class对象:

static public AbstractGSON create(String serializedData) {
        // Use GSON to instantiate this class using the JSON representation of the state
        Gson gson = new Gson();
        return gson.fromJson(serializedData, AbstractGSON.class);
    }

如果我创建一个扩展AbstractGSON的类,我怎样才能获得该方法来创建新类的实例?或者通过继承是不可能的?

1 个答案:

答案 0 :(得分:0)

您可以将该类作为参数传递给方法:

public <T> T deserialize(final String data, final Class<T> className)

然后使用它来反序列化您的数据:

return gson.fromJson(data, className);

你可以这样调用它,例如扩展你的抽象类的类:

User user = super.deserialize(data, User.class);

希望它有所帮助。