Android:我可以在AsyncTask中使用泛型返回类型 - doInBackGround

时间:2012-10-05 06:30:59

标签: android generics android-asynctask

我的AsyncTask调用Web服务&在POJO中获得结果。现在POJO属于不同类型。 &安培; AsyncTask只有一个。那么我可以使用Generic返回类型,如

protected T <T> doInBackground(Class<T> ... classTypes) {
 //Code to call webservice & get pojo
 return calssType.cast(pojoObject)
}

2 个答案:

答案 0 :(得分:2)

尝试将返回类型设置为Object,然后您应该能够将其转换为您想要的任何类型。

答案 1 :(得分:0)

创建一个像POJOClass这样的基类,它可以通过必需的类进行扩展,在异步类中进行类型转换。

yourTask extends AsyncTask<Object, Void, POJOClassObject> {

private ModelObject doInBackground(Object... params){... return POJOClassObject}

protected void onPostExecute(POJOClassObject object) {

//type cast here
}