为什么这个Java方法看起来有两种返回类型? 公共列表getResult(字符串s);

为什么这个Java方法看起来有两种返回类型? 公共列表getResult(字符串s);,java,methods,Java,Methods,其中Foo是我自己的班级 此方法的返回类型是什么?为什么它似乎有两种退货类型?不,您没有两种退货类型。您看到的是一种 public <E extends Foo> List<E> getResult(String s); -->您正在为方法声明泛型类型 列表-->这是您的返回类型 您的方法可以有一个泛型类型E,它是Foo的一个子类。您的退货类型为列表退货类型为列表。子句不是返回类型;它是泛型类型声明,指定特定类型E必须是Foo(或Foo的子类)。这是声明泛型方法的标准

其中
Foo
是我自己的班级


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

不,您没有两种退货类型。您看到的是一种

public <E extends Foo> List<E> getResult(String s);
-->您正在为方法声明泛型类型
列表-->这是您的返回类型

您的方法可以有一个泛型类型
E
,它是
Foo
的一个子类。您的退货类型为
列表

退货类型为
列表
。子句
不是返回类型;它是泛型类型声明,指定特定类型
E
必须是
Foo
(或
Foo
的子类)。这是声明泛型方法的标准语法。

看看与泛型相关的Java

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

 List<E> --> this is your return type
//声明泛型类型'E'的边界`
List//声明返回值

该方法的返回类型为
List

它将返回一个
List@LuiggiMendoza
由调用方指定。方法本身别无选择。它可以合法地返回的只是一个空的
列表
,一个
空的
列表
空的
,或者抛出一个异常/不返回。
E
可以是
Foo
的子类。
<E extends Foo> // declares the bounds for the generic type `E`
List<E> // declares the return value