Wenn ElementType
ist eine statisch bekannte Art, es „easy“ ist ein Type
Objekt repräsentiert eine Sammlung von ElementType
s zu erstellen:Get ParametrizedType Objekt von dynamischem Elementtyp
Type listType = new TypeToken<ObservableList<ElementType>>(){}.getType();
Aber das ist hier nicht möglich, da mein elementType
ist ein dynamischer Wert, erst zur Laufzeit bekannt:
@Override
public ListProperty<?> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws
JsonParseException {
Type elementType = ((ParameterizedType) typeOfT).getActualTypeArguments()[0];
Type listType = // ??? create the type representing a ObservableList<elementType>
ObservableList<?> list = context.deserialize(json, listType);
return new SimpleListProperty<>(list);
}
Jetzt würde ich gerne einen listType
ObservableList<>
, welcher Typ Parameter darstellen sollte der Wert von 012 sein. Gibt es einen Weg dazu?
Ich bin co nfused, worauf sich elementType bezieht? Was meinst du mit _dynamic_? Woher kommt es? –
@SotiriosDelimanolis Ich schreibe einen benutzerdefinierten JSON Deserializer für irgendeine Art von Liste. Der Typ dieser Liste wird als Parameter Typ TypOfT für meine Methode angegeben. Jetzt sollte mein Deserializer die Arbeit durch Deserialisierung als eine andere Art von Liste aufschieben, also muss ich die 'typeOfT' für diese andere Art selbst erstellen. – Joffrey
Siehe [hier] (http://stackoverflow.com/a/25223817/438154). –