¿Hay una manera limpia de asignar la clase de un tipo genérico a una variable?

Dado este código:

List<Integer> ints = new ArrayList<Integer>();

// Type mismatch: 
// cannot convert from Class<capture#1-of ? extends List> to Class<List<Integer>>       
Class<List<Integer>> typeTry1 = ints.getClass(); 

// Type safety: 
// Unchecked cast from Class<capture#2-of ? extends List> to Class<List<Integer>>
Class<List<Integer>> typeTry2 = (Class<List<Integer>>) ints.getClass();

// List is a raw type. References to generic type List<E> should be parameterized
Class<? extends List> typeTry3 = ints.getClass(); 

¿Hay alguna manera de obtener elClass de unList<Integer> sin un error o advertencia? Puedo suprimir las advertencias con bastante facilidad, pero si Java me obliga a suprimir una advertencia para este código válido, estoy muydecepcionar.

Por otro lado, si la supresión de advertencia es la única forma, ¿cuál es la forma más segura de suprimir?

Respuestas a la pregunta(2)

Su respuesta a la pregunta