Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 灵活返回型方法_Java_Android - Fatal编程技术网

Java 灵活返回型方法

Java 灵活返回型方法,java,android,Java,Android,我有几个类(扩展AsyncTaskLoader),它们基本上都做相同的事情:使用Gson进行REST调用并从响应创建POJO。现在,我认为只有一个类(让它带一些参数)并告诉它我希望得到什么类型的对象会更优雅。作为一个参数,我将给出我期望返回的POJO类,因为它在Gson反序列化中使用,如 Imprint impr = gson.fromJson(responseString, Imprint.class); 类/方法的返回类型是什么?我考虑让它返回java.lang.Object,然后将其向下

我有几个类(扩展AsyncTaskLoader),它们基本上都做相同的事情:使用Gson进行REST调用并从响应创建POJO。现在,我认为只有一个类(让它带一些参数)并告诉它我希望得到什么类型的对象会更优雅。作为一个参数,我将给出我期望返回的POJO类,因为它在Gson反序列化中使用,如

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,它不是普通的泛型,而是非常精确的。正如他所说,每个儿童班之间的唯一差别很小,因此不会有太多风险。