【发布时间】:2013-12-01 03:39:09
【问题描述】:
我正在阅读 OCJP 问题,并且在给出以下方法签名中发现了一个问题。
public static <E extends Number> List<? super E> process(List<E> nums)
我想知道返回类型到底是什么,或者写成返回类型的<E extends Number> List<? super E> 是什么意思。
让我给出整个问题。
给定一个声明为的方法:
public static <E extends Number> List<? super E> process(List<E> nums)
程序员想这样使用这个方法:
// 在此处插入声明
output = process(input);
可以放在哪对声明
// 在此处插入声明
允许 要编译的代码? (选择所有适用的。)
一个。
ArrayList<Integer> input = null;
ArrayList<Integer> output = null;
B.
ArrayList<Integer> input = null;
List<Integer> output = null;
C.
ArrayList<Integer> input = null;
List<Number> output = null;
D.
List<Number> input = null;
ArrayList<Integer> output = null;
E.
List<Number> input = null;
List<Number> output = null;
F.
List<Integer> input = null;
List<Integer> output = null;
G.以上都不是。
答案:
乙,乙, 和 F 是正确的
【问题讨论】:
标签: java generics collections return-type