因为intList和numberList都是有别名的,如果允许的话,上面的代码就会让您将不是Integers的东西放进intList中。但是,正如下一屏将会看到的,您有一个更加灵活的方式来定义泛型。 package com.ibm.course.generics; import java.util.ArrayList; import java.util.List; public class GenericsExample { public static void main(String[] args) { Integer[] integer = new Integer[5]; Number[] number = integer; System.out.println(number[0]);// null number[0] = new Float(7.65); System.out.println(number[0]); System.out.println(integer[0]); List<Integer> list = new ArrayList<Integer>(); // Type mismatch: cannot convert from List<Integer> to List<Number> // List<Number> listObj = list; } } List<Number> listObj = list;导致编译错误:Type mismatch: cannot convert from List<Integer> to List<Number> 而System.out.println(number[0]);和System.out.println(integer[0]);导致运行时异常: Exception in thread "main" java.lang.ArrayStoreException: java.lang.Float at com.ibm.course.generics.GenericsExample.main(GenericsExample.java:15)