下课睡觉 2016-12-18 06:10 采纳率: 16.7%
浏览 1316

java 关于 T 的用法?

情况是这样的,这是我一段向服务端请求的代码:
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的类型都是我手动写进去的。我想过能不能只写一个方法,这个方法只包含三个参数,一个是请求的字符串,一个是服务端会返回的数据类型(就是这里我不知道怎么写),还有一个是成功失败的监听。这样的话,请求的方法就只有一个了?请问可以这样写吗?如果可以的话求告知下怎么写啊,现在已经懵逼了。
  • 写回答

1条回答 默认 最新

  • dabocaiqq 2016-12-31 09:50
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器