如题,很多时候,我们会定义一个基类,比如:
public class BaseResponse<T> {
public String fun;
public String stat;
public T cbk;
@Override
public String toString() {
return "BaseResponse{" +
"fun='" + fun + '\'' +
", stat='" + stat + '\'' +
", cbk=" + cbk +
'}';
}
}
可以看到 cbk 是泛型,因为它可能是 一个 item 或者是一个 其他的 bean;
如果用传统的方式解析 json,如:
BaseResponse<HotPotInfo> response = JSON.parseObject(s,BaseResponse.class);
虽然可以打印,但在使用的时候,却会报 类不能转换的问题
所以,这里需要用到 TypeReference,如下:
BaseResponse<HotPotInfo> response = JSON.parseObject(s, new TypeReference<BaseResponse<HotPotInfo>>(){});
mHotCallback.getHotpotStatus(response);
这样就可以正常使用 泛型了