天天看點

利用反射越過泛型檢查

現象:list加入了泛型Integer,規定隻能添加Integer類型的值,想添加别的類型的會報錯

利用反射越過泛型檢查

越過泛型檢查

@Test
    public void skipGenric(){
        List<Integer> list = new ArrayList<>();
        list.add(123);
        //擷取Class對象
       Class clazz=list.getClass();
        try {
            //擷取add方法,參數類型設定為Object
            Method method = clazz.getMethod("add", Object.class);
            //調用方法
            method.invoke(list,"sss");
            System.out.println(list);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
           

結果展示

利用反射越過泛型檢查