Existe uma maneira limpa de atribuir a classe de um tipo genérico a uma variável?

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

Existe uma maneira de obter oClass de umList<Integer> sem um erro ou aviso? Eu posso suprimir os avisos com bastante facilidade, mas se o Java requer que eu suprima um aviso para este código válido, eu sou muitodecepcionar.

Por outro lado, se a supressão de advertência é o único caminho, qual é a mais segura para suprimir?

questionAnswers(2)

yourAnswerToTheQuestion