首页 > 试题广场 >

下面有关Java泛型的代码,编译报错的是()

[不定项选择题]

下面有关Java泛型的代码,编译报错的是(      )

  • List<Object> list = new ArrayList<String>();

  • List<? extends Number> list = new ArrayList<Integer>();

  • List<String>[] array = new ArrayList<String>[0];

  • List<Number> list = new ArrayList<? extends Number>();

这道题考的是泛型协变,数组是协变的,而泛型不是 也就是说 B extends A,那么A[]同样也是B []的父类,用A类型的数组直接去接收一个B类型数组是合法的,但是泛型不行。在泛型上加上extends关键字,那么泛型也是协变的,所以B对,A,C错。协变的泛型不能用在初始化上,D错
发表于 2021-07-11 23:44:55 回复(0)