接收通用类类型

时间:2016-09-28 11:16:54

标签: java android generics gson

我希望创建接收类的泛型函数,然后使用Gson数据返回它。 这是我需要表达的代码示例,请您帮助我吗?

ClassType? dealWithClass (String st, Class cls)
{
    Gson gson = new Gson();
    return gson.fromJson(st,cls.class);
}

MyClass1 mc1 = dealWithClass("some gson string",MyClass1.class)
MyClass2 mc2 = dealWithClass("some second gson string",MyClass2.class)

2 个答案:

答案 0 :(得分:3)

简单使用泛型:

public <T>  T dealWithClass (String st, Class<T> cls)
{
    Gson gson = new Gson();
    return gson.fromJson(st,cls);
}

答案 1 :(得分:2)

您需要使用generic method

  

就像类型声明一样,方法声明可以是通用的 - 即由一个或多个类型参数参数化。

<T> T dealWithClass(String st, Class<T> clazz) {
    Gson gson = new Gson();
    return gson.fromJson(st, clazz);
}