我有以下代码,但我对所有的泛型都很困惑.
public static <T> List<T> backwards (List<? super T> input) {
List<T> output = new ArrayList<T>();
return output;
}
Run Code Online (Sandbox Code Playgroud)
我的理解是我有一个名为public的方法backwards,它创建一个实现List接口并返回arraylist的arraylist.我的问题是我实际上对编译器说的是以下部分......
static <T> List<T> backwards (List<? super T> input)
Run Code Online (Sandbox Code Playgroud)
Pau*_*ora 41
你是对编译器说的:
<T>
Run Code Online (Sandbox Code Playgroud)
"我正在T为这个方法声明一个任意类型,对于每个方法的调用,它可以是任何(非原始的)."
List<T>
Run Code Online (Sandbox Code Playgroud)
"此方法将返回List包含该类型元素的内容T."
List<? super T> input
Run Code Online (Sandbox Code Playgroud)
"这种方法将需要一个名为参数input,这是一种List类型的包含元素T,或任何超类型的T.例如,如果T是Integer,input可以是一个List<Integer>,List<Number>或List<Object>".