Java 面試題之反射的應用(如何在List list = new ArrayList();中放入Integer型別的資料)
阿新 • • 發佈:2019-01-31
面試題中遇到的問題,相信各位小夥伴,在面試中遇到過各類神奇的問題,不是各位說不會,也可能是沒有實際應用過這類的方法,所以在面試時非常吃虧,給面試官的印象也不好。在此記錄下來,與各位共勉!!
如何在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)); } } }
而且這種應用直接跳過編譯!