當我打電話:類型擦除,通過類的說法
ArrayList<MyType> myobject = new Gson().fromJson(data, new TypeToken<ArrayList<T>>(){}.getType());
一切工作正常,使用fromJson(String, Type)
當我打電話:
ArrayList<MyType> myobject = helper(data);
public ArrayList<MyType> helper(String data){
return new Gson().fromJson(data, new TypeToken<ArrayList<MyType>>(){}.getType());
}
它仍然工作正常,但是當我打電話:
ArrayList<MyType> myobject = helper(data, MyType.class);
public <T> ArrayList<T> helper(String data, Class<T> type){
return new Gson().fromJson(data, new TypeToken<ArrayList<T>>(){}.getType());
}
type參數不正確。
我該如何解決最後的代碼片段?
SOLUTION
由於@LewsTherin建議,我只是給了確切類型的參數從主叫
所以助手的聲明是這樣:
public <T> ArrayList<T> helper(String data, Type type){
ArrayList<T> rtn = g.fromJson(data, type);
return rtn;
}
,並呼籲像:
variable = helper(data, new TypeToken<ArrayList<MyType>>(){}.getType());
但是,如果有人可以編輯輔助函數到si mplify代碼,我會標記他是正確的!