思考,将已存在的ArrayList<Integer>集合中添加一个字符串数据,如何实现呢?

其实程序编译后产生的.class文件中是没有泛型约束的,这种现象我们称为泛型的擦除。那么,我们可以通过反射技术,来完成向有泛型约束的集合中,添加任意类型的元素。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

public class ReArrayList {

    public static void main(String[] args) throws Exception{
        List<String>list=new ArrayList();
        Class c=list.getClass();
        Object obj=c.newInstance();
        
        Method m=c.getMethod("add", Object.class);
        
        m.invoke(list, 1);
        m.invoke(list, 2);
        m.invoke(list, 3);
        
        System.out.println(list);
     
    

      for(Object o:list){
        System.out.println(o);
        }


} }

注:遍历只能写Object类型,没有实用价值。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄