package com.sanmao10;
import java.lang.reflect.Method;
import java.util.ArrayList;
public class test_fanxing {
/**
* * ArrayList<Integer>的一个对象,在这个集合中添加一个字符串数据,如何实现呢?
* 泛型只在编译期有效,在运行期会被擦除掉*/
public static void main(String[] args) throws Exception{
ArrayList<Integer> list=new ArrayList<>();
list.add(123);
list.add(321);
//list.add( "www"); 将会报错 为了解决这个问题,我们对其add方法进行反射,讲字符串添加进去
//因为不在编译期 所以泛型无效
Class clazz=Class.forName("java.util.ArrayList");
Method m=clazz.getMethod("add",Object.class); //API add(E e) 参数Object
m.invoke(list,"sanmao");
System.out.println(list); //[123, 321, sanmao] 成功反射进来字符串
}
}
JAVA - 反射 - 动态泛型擦除
猜你喜欢
转载自blog.csdn.net/maihilton/article/details/81517405
今日推荐
周排行