【泛型擦除】通过反射向List中添加不同类型的元素

【泛型擦除】通过反射向List中添加不同类型的元素

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
        ArrayList<String> list= new ArrayList<String>();

        //泛型擦除,输出true
        System.out.println(strings.getClass().equals(integers.getClass()));

        list.add("xxx");
        //编译时错误,无法通过编译
        //strings.add(18);
        Class<? extends ArrayList> clazz= list.getClass();
        Method add = clazz.getMethod("add", Object.class);
        //运行时可以通过
        add.invoke(list,17);
        //输出 [xxx,17]
        System.out.println(strings.toString());
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计