面试题中遇到的问题,相信各位小伙伴,在面试中遇到过各类神奇的问题,不是各位说不会,也可能是没有实际应用过这类的方法,所以在面试时非常吃亏,给面试官的印象也不好。在此记录下来,与各位共勉!!
如何在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));
}
}
}
而且这种应用直接跳过编译!
本文介绍了一种使用Java反射机制在限定类型的List中存放不同数据类型的方法,并提供了具体实现代码示例。此技巧能够绕过编译时类型检查,但需谨慎使用。
689

被折叠的 条评论
为什么被折叠?



