public static void main(String[] args) {
ArrayList<Integer> integers = new ArrayList<>();
ArrayList<Object> objects = (ArrayList) integers; // 编译通过
ArrayList<Object> objects = (ArrayList<Object>) integers; // 编译失败
}
请问为什么强转不带泛型编译通过,带上泛型反而还失败了?谢谢!
ArrayList
与ArrayList<Object>
不是同一种类型,前者是原始类型,是所有带泛型参数类型的父类型,后者不是。
泛型就是,数组里面只能是这个类型的数据,Integer只是Object的一种