引言
Android应用中经常会碰到对JSON的解析,但解析一串比较长的JSON时候往往会比较耗时,那么耗时就采用异步解决.
但程序中有很多bean啊,要怎样解决该类适合全部的bean呢? 那就用到泛型 啦。。
/**
* json异步解析类
* @author 蒙查查
* **/
public class AnyncParseJson<T> extends Thread {
JSONObject jobj;
Class<T> tclass;
Handler mHandler;
public AnyncParseJson(JSONObject jobj, Class<T> tclass, Handler mHandler) {
// TODO Auto-generated constructor stub
this.jobj = jobj;
this.tclass = tclass;
this.mHandler = mHandler;
}
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
Gson gson = new Gson();
T tobj = gson.fromJson(jobj.toString(), tclass);
Message msg = mHandler.obtainMessage();
msg.obj = tobj;
mHandler.sendMessage(msg);
}
}
例如有Abean, Bbean, Cbean这几个bean, 它们结构都不一样,但调用AsyncParseJson都统一
直接写上
new AsyncParseJson<Abean> (jsonObject, Abean.class, mHandler).run();
new AsyncParseJson<Bbean> (jsonObject, Bbean.class, mHandler).run();
new AsyncParseJson<Cbean> (jsonObject, Cbean.class, mHandler).run();
如果有更好的模块化方法,就请给我留言。。。