通常,面试者为了考察你的基础知识,会教你如何在Interger类型的list集合中添加字符串吗? 通常,在add方法中直接添加会报告错误,模板类型约束的生成发生在编译阶段。 是否可以绕过编译,在运行阶段添加int类型的数据? 答案是肯定的。
public class reflection { staticlistintegerlist=newarraylistinteger (; publicstaticvoidmain (string [ ] args ) list.add ) 1; list.add(2); //直接添加字符串会在编译阶段报告错误//list.add('SSS ); Class class1=list.getClass (; try { method method=class1. get method (' add ',Object.class ); ///system.out.println (list,' sss ' ),用于在反射机制中操纵list对象method.invoke(list,' sss ' ); }catch(exceptione ) { e.printStackTrace ); }}运行结果如下。