如題,很多時候,我們會定義一個基類,比如:
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);
這樣就可以正常使用 泛型了