なぜこれが起こっているのか。匿名ジェネリック クラスを型決定メソッドに渡すと、すべて問題ありません。しかし、このメソッドでオブジェクトを渡すと、コンソール出力は 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
私に説明してください。