为什么这个Java方法似乎有两个返回types?

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

Foo是我自己的class级。

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

不,你没有两种返回types,这是你看到的一种通用的方法

  <E extends Foo> --> you are declaring a generic type for your method List<E> --> this is your return type 

你的方法可以有一个genericstypesE ,它是Foo一个子类。 您的返回types是List<Foo or any SubType Of FOO>typesList<Foo or any SubType Of FOO>

返回types是List<E> 。 子句<E extends Foo>不是返回types; 它是genericstypes声明,指定特定typesE必须是Foo (或Foo的子类)。 这是声明generics方法的标准语法。

看看有关generics的Java 文档 。

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

该方法的返回types是List<E>