本帖最后由 shisishishisi 于 2014-6-11 14:28 编辑
分析在代码里:- import java.lang.reflect.Method;
- import java.util.ArrayList;
- public class Test1{
- public static void main(String[] args) throws Exception{
- ArrayList<Integer> list = new ArrayList<Integer>();
- list.add(123);
- //Method method = ArrayList.class.getClass().getMethod("add", String.class);
- //ArrayList.class已经得到ArrayList这个类的字节码了为何还要getClass?
- //获得类字节码的3种方式需要再去看看啊。。。。
- Method method = ArrayList.class.getMethod("add",Object.class);
- //查看API文档add方法:boolean add(E e);并没有你指定的 add(String s);所以报错说找不到该方法
- method.invoke(list, "abc");
- for(Object li : list){
- System.out.println(li);
- }
- //利用反射向集合加入String类型元素,说明泛型只在编译期有效~~
- }
- }
复制代码
|