Ich habe eine Klasse, die eine Arraylist von Generika mit dieser Funktion deserialisiert ebenso wie in der ersten Antwort dieses Threads beschrieben: Java abstract class function generic TypeFehler TypeToken Gießen auf Typen, wenn sie mit Gson Deserialisieren
public <T> ArrayList<T> arrayType(String data){
return g.fromJson(data, TypeToken.get(new ArrayList<T>().getClass()));
}
Eclipse-me TypeToken zu werfen fragt in dieser resultierenden (Sinde die Funktion fromJson einen Typ braucht, kein TypeToken)
public <T> ArrayList<T> arrayType(String data){
return g.fromJson(data, (Type) TypeToken.get(new ArrayList<T>().getClass()));
}
Als Ergebnis, das ich diesen Fehler:
java.lang.ClassCastException: com.google.gson.reflect.TypeToken cannot be cast to java.lang.reflect.Type
Am gson user manual sie Ihnen sagen, dies ist der richtige Weg
Type collectionType = new TypeToken<Collection<Integer>>(){}.getType();
Collection<Integer> ints2 = gson.fromJson(json, collectionType);
die Funktion aufrufen, und ich kann nicht sehen, was ich tue, falsch (wenn es sich um eine gültige Antwort ist, warum ich immer diese Besetzung Fehler?)
'neue ArrayList() .getClass()' ist genau das selbe wie 'ArrayList.class' –
newacct