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>