反射跳过泛型检查

Posted mljqqh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射跳过泛型检查相关的知识,希望对你有一定的参考价值。

 @Test
public void method() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
//创建集合
ArrayList<Integer> list = new ArrayList<>();
//通过对象获取字节码对象
Class<? extends ArrayList> aClass = list.getClass();
//反射获取add ()
Method method = aClass.getMethod("add", Object.class);
method.invoke(list,"mlj");
method.invoke(list, "qq");
method.invoke(list, ‘h‘);
System.out.println(list);
//输出 [mlj, qq, h]

// 分析:反射直接跳过了泛型Integer,list存储String类型值;
// 结论:泛型只是给编译器看的,实际的单列集合,双列集合可以交叉存储任意引用值
}

 



 

 



















以上是关于反射跳过泛型检查的主要内容,如果未能解决你的问题,请参考以下文章

java 27 - 7 反射之 通过反射越过泛型检查

通过反射越过泛型检查。。。。

基于反射和泛型的编程

[Java基础]反射练习之越过泛型检查,运行配置文件制定内容

31反射(获取Class实例剖析运行时类的完整结构读取properties文件反射创建类越过泛型检查)枚举

java中反射(Reflect)的常见应用场景