如何在List<String>中加入一个int类型数据

96
i左撇子
2017.01.03 11:16* 字数 94

抛开实用性,我们只是简单的去探讨一下这个问题。
List<String>指定了添加到List的对象必须为String类型,范型约束的产生在编译阶段,那么我们是否能够绕过编译,在运行阶段添加一个int类型的数据呢,答案是肯定的。

        List<String> list1 = new ArrayList<>();
        list1.add("test1");
        // 添加int类型数据报错
        // list1.add(20);

        Class class2 = list1.getClass();
        try {
            Method method1 = class2.getMethod("add", Object.class);
            // 通过反射机制操作list1
            method1.invoke(list1, 20);

            // 输出结果[test1, 20]
            System.out.println(list1);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

以上。

Java