首先来说这个需要就是扯淡,没有实际的应用场景,就是面试的时候的问题。只是一种破坏手段。因为我们使用集合指定泛型,就是为了约束其中的数据的类型。而且我们使用集合的时候一般都会遍历使用。最简单的案例,比如说我们去求集合中的元素的和,那么这不就废了。
泛型的作用就是在编译的阶段限制数据类型,但是等到加载到内存中都是Object类型
public static void main(String[] args) throws Exception {
// 为什么能够存入呢?因为只有在编译的时候才有数据类型,在底层存的都是Object类型
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
Class<? extends ArrayList> aClass = list.getClass();
Method add = aClass.getDeclaredMethod("add",Object.class);
add.invoke(list,"java");
System.out.println(list); // [1, java]
int sum =0;
for (Integer integer : list) {
// 这不就废了?
sum+=list.get(integer);
}
}