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

Cac*_*ing 10 java methods

public <E extends Foo> List<E> getResult(String s);
Run Code Online (Sandbox Code Playgroud)

Foo我自己的班级在哪里.

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

Per*_*ror 21

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

 <E extends Foo> --> you are declaring a generic type for your method

 List<E> --> this is your return type
Run Code Online (Sandbox Code Playgroud)

您的方法可以具有泛型类型E,该类型是子类Foo.你的退货类型是List<Foo or any SubType Of FOO>


rge*_*man 6

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