方法的灵活返回类型

4

我有几个类(继承自AsyncTaskLoader),它们基本上都做同样的事情:通过REST调用创建POJO响应,使用Gson从响应中创建POJO。现在我认为只有一个类更加优雅,它需要一些参数,并且告诉它我期望得到什么类型的对象。作为参数,我将给出我期望获得的POJO类,因为它在Gson反序列化中使用。

Imprint impr = gson.fromJson(responseString, Imprint.class);

这个类/方法的返回类型会是什么?我考虑过让它返回 java.lang.Object 然后将其向下转换为我期望的POJO类型对象,但是否有更好的可能性呢?

2个回答

7
使用泛型。一个示例方法签名可能如下所示:
public <T> T callService(String parameters, Class<T> clazz)

-1

你可以使用Uwe的解决方案,或者只返回通用类(这里是AsyncTask),然后进行强制转换,甚至返回Object并进行强制转换(更危险)。


返回一个普通的泛型类几乎和返回 Object 一样糟糕。 - Jerome
在这里,我谈论的是返回一个AsyncTaskLoader,它不是普通的泛型,而是非常精确的。正如他所说,每个子类之间的唯一区别非常小,因此没有太多的风险。 - wazaminator

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接