Java 灵活返回型方法
我有几个类(扩展AsyncTaskLoader),它们基本上都做相同的事情:使用Gson进行REST调用并从响应创建POJO。现在,我认为只有一个类(让它带一些参数)并告诉它我希望得到什么类型的对象会更优雅。作为一个参数,我将给出我期望返回的POJO类,因为它在Gson反序列化中使用,如Java 灵活返回型方法,java,android,Java,Android,我有几个类(扩展AsyncTaskLoader),它们基本上都做相同的事情:使用Gson进行REST调用并从响应创建POJO。现在,我认为只有一个类(让它带一些参数)并告诉它我希望得到什么类型的对象会更优雅。作为一个参数,我将给出我期望返回的POJO类,因为它在Gson反序列化中使用,如 Imprint impr = gson.fromJson(responseString, Imprint.class); 类/方法的返回类型是什么?我考虑让它返回java.lang.Object,然后将其向下
Imprint impr = gson.fromJson(responseString, Imprint.class);
类/方法的返回类型是什么?我考虑让它返回
java.lang.Object
,然后将其向下转换为我期望的POJO类型的对象,但是有更好的可能性吗 使用泛型。一个示例方法签名如下所示
public <T> T callService(String parameters, Class<T> clazz)
public T调用服务(字符串参数,类clazz)
您可以使用uwe解决方案,或者只返回泛型类(这里是asynctask),然后执行强制转换,甚至返回对象,再执行强制转换(更危险)返回普通泛型类几乎和返回对象一样糟糕这里我说的是返回AsyncTaskLoader,它不是普通的泛型,而是非常精确的。正如他所说,每个儿童班之间的唯一差别很小,因此不会有太多风险。