为什么会发生这种情况呢?如果我将匿名泛型类传递给类型确定方法,一切都很好。但是如果我在该方法中传递对象,则控制台输出为 E。
请给我解释一下。
public static void main(String[] args) {
printType(new ArrayList<Integer>() {});
printType(new ArrayList<Integer>());
}
public static void printType(final List<?> list) {
System.out.println(((ParameterizedType) list.getClass().getGenericSuperclass()).getActualTypeArguments()[0]);
}
控制台:
class java.lang.Integer
E
请给我解释一下。