Desserializando um tipo genérico com Jackson

Eu estou tentando fazer uma aula que usa o Jackson para desserializar POJO's.

Se parece com isso...

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));
        }

    }

Eu tenho 2 perguntas sobre essa implementação.

A primeira é que estou passando o tipo de classe para os métodos, de forma que o mapeador de objetos saiba o tipo que deve desserializar. Existe uma maneira melhor de usar genéricos?

Também no método get, estou lançando um objeto retornado do objectMapper para T. Isso parece uma maneira particularmente desagradável de fazer isso, já que tenho que converter T aqui e então também tenho que converter o tipo de objeto do método que está chamando.

Eu estou usando o Roboguice neste projeto, então seria legal se eu pudesse mudar o tipo através da injeção e então anotar o objeto que o tipo genérico eu preciso que ele retorne. eu leio sobreTypeLiteral e imaginando se isso poderia resolver esse problema?

questionAnswers(2)

yourAnswerToTheQuestion