1. 程式人生 > >Java 面試題之反射的應用(如何在List list = new ArrayList();中放入Integer型別的資料)

Java 面試題之反射的應用(如何在List list = new ArrayList();中放入Integer型別的資料)

面試題中遇到的問題,相信各位小夥伴,在面試中遇到過各類神奇的問題,不是各位說不會,也可能是沒有實際應用過這類的方法,所以在面試時非常吃虧,給面試官的印象也不好。在此記錄下來,與各位共勉!!

如何在List<String> list = new ArrayList<String>();中放入Integer型別的資料,之前沒有遇到過這種情況,回來找了一下度娘才明白,應用到了反射機制。

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

public class Demo {

	public static void main(String[] args) throws NoSuchMethodException,
			SecurityException, IllegalAccessException,
			IllegalArgumentException, InvocationTargetException {

		List<String> list = new ArrayList<String>();
		Class<?> cls = list.getClass();
		Method method = cls.getMethod("add", Object.class);
		method.invoke(list, 1);
		method.invoke(list, "s");
		method.invoke(list, 2);
		method.invoke(list, 4);

		System.out.println(list);
		
		ArrayList<Object> obj = new ArrayList<Object>();
		obj.addAll(list);
		for (int i = 0; i < obj.size(); i++) {
			System.out.println(obj.get(i));
		}

	}
}


而且這種應用直接跳過編譯!