为什么这个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>
。