Deserialisieren eines generischen Typs mit Jackson

Ich versuche, eine Klasse zu erstellen, die den Jackson verwendet, um POJOs zu deserialisieren.

Es sieht aus wie das...

public class DeserialiserImp<T> implements Deserialiser<T> {

        protected ObjectMapper objectMapper = new ObjectMapper();

        @Override
        public T get(String content, Class clazz) throws IOException {
            return (T) objectMapper.readValue(content, clazz);
        }

        @Override
        public List<T> getList(String content, Class clazz) throws IOException {
            return objectMapper.readValue(content, TypeFactory.collectionType(ArrayList.class, clazz));
        }

    }

Ich habe 2 Fragen zu dieser Implementierung.

Das erste ist, dass ich den Klassentyp in die Methoden übergebe, damit der Objectmapper den Typ kennt, der deserialisiert werden soll. Gibt es eine bessere Möglichkeit, Generika zu verwenden?

Auch in der get-Methode wird ein vom objectMapper zurückgegebenes Objekt in T umgewandelt. Dies scheint besonders unangenehm zu sein, da ich hier T und dann auch den Objekttyp aus der Methode, die es aufruft, umwandeln muss.

Ich benutze Roboguice in diesem Projekt, daher wäre es schön, wenn ich den Typ durch Injection ändern und dann das Objekt mit Anmerkungen versehen könnte, den ich für die Rückgabe benötige. ich lese überTypeLiteral und sich fragen, ob es dieses Problem lösen könnte?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage