मैं एक वर्ग है कि इस समारोह इस सूत्र के पहले जवाब में वर्णित बस के रूप में साथ जेनरिक का एक ArrayList deserializes है: Java abstract class function generic Typeसमय त्रुटि gson साथ deserializing
public <T> ArrayList<T> arrayType(String data){
return g.fromJson(data, TypeToken.get(new ArrayList<T>().getClass()));
}
ग्रहण मुझे TypeToken कास्ट करने के लिए पूछता है इस में जिसके परिणामस्वरूप
public <T> ArrayList<T> arrayType(String data){
return g.fromJson(data, (Type) TypeToken.get(new ArrayList<T>().getClass()));
}
(Sinde समारोह fromJson एक प्रकार, एक TypeToken नहीं की जरूरत है) परिणाम के रूप में मैं इस त्रुटि मिलती है:
java.lang.ClassCastException: com.google.gson.reflect.TypeToken cannot be cast to java.lang.reflect.Type
gson user manual में वे आपको बता इस समारोह
Type collectionType = new TypeToken<Collection<Integer>>(){}.getType();
Collection<Integer> ints2 = gson.fromJson(json, collectionType);
बुला का सही तरीका है और मैं नहीं देख सकता मैं गलत क्या कर रहा हूँ (अगर यह एक वैध जवाब है, यही कारण है कि मैं इस डाली हो रही है त्रुटि?)
'नया ऐरेलिस्ट() .getClass()' बिल्कुल 'ArrayList.class' –
newacct