Java 的泛型擦除和运行时泛型信息获取 - 编程语言 - ITeye资讯
如:
list<interger> list1= new ArrayList<Integer>();
list<String > list2= new ArrayList<String>();
syso;list1==list2 true
如:Map map = new HashMap() {}; //定义类的方式获取数据
Type type = map.getClass().getGenericSuperclass();
ParameterizedType parameterizedType = ParameterizedType.class.cast(type);
for (Type typeArgument : parameterizedType.getActualTypeArguments()) {
System.out.println(typeArgument.getTypeName());
}
原因是: 编译时编译器会把泛型数据插除,避免过多的类被创建消耗性能
而需要用到泛型中的参数时可通过定义类的方式获取数据(序列和反序列)
网友评论