反射-通過反射越過泛型檢查

ZHOU_VIP發表於2017-06-11

package cn.itcast.test;

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

/*
 * 我給你ArrayList<Integer>的一個物件,我想在這個集合中新增一個字串資料,如何實現呢?
 */
public class ArrayListDemo {
	public static void main(String[] args) throws NoSuchMethodException,
			SecurityException, IllegalAccessException,
			IllegalArgumentException, InvocationTargetException {
		// 建立集合物件
		ArrayList<Integer> array = new ArrayList<Integer>();

		// array.add("hello");add不進去
		// array.add(10);//自動裝箱,Integer.ValueOf(10);

		Class c = array.getClass(); // 集合ArrayList的class檔案物件
		Method m = c.getMethod("add", Object.class);

		m.invoke(array, "hello");   // 呼叫array的add方法,傳入的值是hello
		m.invoke(array, "world");
		m.invoke(array, "java");

		System.out.println(array);
	}
}



相關文章