1.注释中写问题1的地方,clazz.getMethod方法的参数,第一个是方法名,第二个是方法传入的参数。而ArrayList的add方法的参数是一个<E>泛型。而前面第一行代码已经把泛型的类型定义为String,所以第二个参数传入String.class为什么不对呢?这是张老师视频中讲过的,获取class后,再反射调用可以加入其他类型的数据。我这里是原先是String,反射调用后,加入Integer。有两个问题:复制代码
- ArrayList<String> a1 = new ArrayList();
- Class clazz = a1.getClass();
- Method method = clazz.getMethod("add", String.class);//问题1
- method.invoke(a1, 2);
- System.out.println(a1.get(0).toString());//问题2
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |