Есть ли чистый способ присвоения класса универсального типа переменной?
Учитывая этот код:
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();
Есть ли способ получитьClass
изList<Integer>
без ошибки или предупреждения? Я могу достаточно легко подавить предупреждения, но если Java требует, чтобы я подавил предупреждение для этого допустимого кода, я оченьразочаровывать.
С другой стороны, если подавление предупреждений является единственным способом, что является самым безопасным для подавления?