情况是这样的,这是我一段向服务端请求的代码:
public void getMessage(final String json, final ActionCallBackListener listener) {
new AsyncTask>() {
@Override
protected BaseEntity doInBackground(Void... params) {
//
//请求部分代码
//此处省略
//服务端传回来的数据存放到String result里。
Type type = new TypeToken>() {
}.getType();
return gson.fromJson(result, type);
}
@Override
protected void onPostExecute(BaseEntity<Void> s) {
try {
if (s.getResponse().getResult().equals("true"))
listener.onSuccess(s);
else
listener.onFailure(s.getResponse().getException().e_Type, s.getResponse().getException().e_Type);
} catch (Exception e) {
e.printStackTrace();
listener.onFailure("出错了呢", e.toString());
}
super.onPostExecute(s);
}
}.execute();
}
这其中,BaseEntity是一个总的model,里面基本上包含了项目的所有的model,BaseEntity的声明:
class BaseEntity<T> implements Serializable{
............
}
现在的情况是,向服务端请求的方法有很多,每个方法返回的类类型也不一样,所以现在我写了很多个方法,方法里BaseEntity<T> T的类型都是我手动写进去的。我想过能不能只写一个方法,这个方法只包含三个参数,一个是请求的字符串,一个是服务端会返回的数据类型(就是这里我不知道怎么写),还有一个是成功失败的监听。这样的话,请求的方法就只有一个了?请问可以这样写吗?如果可以的话求告知下怎么写啊,现在已经懵逼了。