public <E extends Foo> List<E> getResult(String s);
Foo
我自己的课在哪里。
这个方法的返回类型是什么?为什么它似乎有两种返回类型?
不,您没有两种返回类型。这是您看到的通用方法。
<E extends Foo>
→ 您正在为您的方法声明一个泛型类型;List<E>
→ 这是您的返回类型。你的方法可以有一个泛型类型E
,它是Foo
. 该方法的返回类型是 a List<Foo-or-any-subtype-of-Foo>
。
返回类型是List<E>
. 该子句<E extends Foo>
不是返回类型;它是一个泛型类型声明,指定特定类型E
必须是 a Foo
(或 的子类Foo
)。这是声明泛型方法的标准语法。
查看与泛型有关的 Java文档。
<E extends Foo> // declares the bounds for the generic type `E`
List<E> // declares the return value
该方法的返回类型是List<E>
.