鉴于此代码:
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
a ?List<Integer>
我可以很容易地抑制警告,但如果 Java 要求我抑制对这个有效代码的警告,我会非常失望。
另一方面,如果警告压制是唯一的方法,那么什么是最安全的压制呢?