11
public <E extends Foo> List<E> getResult(String s);

Foo我自己的课在哪里。

这个方法的返回类型是什么?为什么它似乎有两种返回类型?

4

3 回答 3

23

不,您没有两种返回类型。这是您看到的通用方法。

  • <E extends Foo>→ 您正在为您的方法声明一个泛型类型;
  • List<E>→ 这是您的返回类型。

你的方法可以有一个泛型类型E,它是Foo. 该方法的返回类型是 a List<Foo-or-any-subtype-of-Foo>

于 2013-03-07T21:17:16.580 回答
7

返回类型是List<E>. 该子句<E extends Foo>不是返回类型;它是一个泛型类型声明,指定特定类型E必须是 a Foo(或 的子类Foo)。这是声明泛型方法的标准语法。

于 2013-03-07T21:17:20.547 回答
4

查看与泛型有关的 Java文档。

<E extends Foo> // declares the bounds for the generic type `E`
List<E> // declares the return value

该方法的返回类型是List<E>.

于 2013-03-07T21:17:43.857 回答