Czy istnieje czysty sposób na przypisanie klasy typu ogólnego zmiennej?
Biorąc pod uwagę ten kod:
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();
Czy istnieje sposób na zdobycieClass
aList<Integer>
bez błędu lub ostrzeżenia? Mogę łatwo stłumić ostrzeżenia, ale jeśli Java wymaga ode mnie ostrzeżenia dla tego prawidłowego kodu, jestem bardzozawieść.
Z drugiej strony, jeśli tłumienie ostrzeżeń jest jedynym sposobem, co jest najbezpieczniejsze do powstrzymania?