反射简单的应用

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.ArrayList;

    //反射的应用
    //需求:给定一个ArrayList<Integer> 集合,要求添加字符串数据
    public class ArrayListSTest {
        public static void main(String[] args) throws Exception {
            ArrayList<Integer> array = new ArrayList<Integer>();
            //因为泛型的作用,此处编译不通过,泛型是给编译看的,运行时不存在
            //array.add("Hello");
            //但是底层代码 add方法 ,传入的参数是Object
            //所以反射就能实现
            //---------------------
            //集合ArrayList的class文件对象
            Class c = array.getClass();
            //获取add方法对象
            Method m = c.getMethod("add",Object.class);
            m.invoke(array, "Hello");//调用array的add方法,传入的参数是hello
            m.invoke(array, "World");
            m.invoke(array, "编程很神奇的");
            System.out.println(array);
        }
    }
posted @ 2016-11-13 20:30  第五个世界  阅读(85)  评论(0编辑  收藏  举报