Deserializar un tipo genérico con Jackson

Estoy tratando de hacer una clase que use el Jackson para deserializar POJO's.

Se parece a esto...

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

    }

Tengo 2 preguntas sobre esta implementación.

La primera es que estoy pasando el tipo de clase a los métodos para que el Objectmapper sepa el tipo que debería deserializarse. ¿Hay una mejor manera de usar los genéricos?

También en el método get, estoy lanzando un objeto devuelto desde objectMapper a T. Esta es una forma particularmente desagradable de hacerlo, ya que tengo que emitir T aquí y también tengo que convertir el tipo de objeto del método que lo llama.

Estoy usando Roboguice en este proyecto, así que sería bueno si pudiera cambiar el tipo a través de la inyección y luego anotar el objeto que el tipo genérico necesito que devuelva. Yo leo sobreTypeLiteral&nbsp;y preguntándose si podría resolver este problema?