5

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

私に説明してください。

4

1 に答える 1