为什么这个Java方法看起来有两个返回类型?


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

,其中Foo是我自己的类。

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

不,您没有两个返回类型。这是一个泛型方法

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

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

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

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

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

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

最新更新