想到了之前做的一道编程题,这道题要用反射才能解决:
ArrayList<Integer> list = new ArrayList<Integer>(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象
public class Test3 {
public static void main(String[] args)
{
ArrayList<Integer> list = new ArrayList<Integer>();
Method method = null;
method = list.getClass().getMethod("add",Object.class); //通过反射,获得指定的方法add()
String str = "I am a string type";
method.invoke(list,str);//调用方法对象的invoke方法运行指定方法方法add(),参数中的list为所属的对象,str为方法的实际参数。
}
}
反射有缺点,就像你说的,但优点更明显,能解决一些其它技术所不能解决的问题。它增强了程序的扩展性和灵活性。好处还是大大滴!!! |