Methods 理解终端操作方法的声明

Methods 理解终端操作方法的声明,methods,declaration,return-type,collectors,Methods,Declaration,Return Type,Collectors,通常,方法的声明显示其返回类型、方法完整路径和参数。但当我看到方法java.util.stream.stream.collect时,我感到困惑 该方法似乎有两种返回类型: <List<Integer>, Object> List<Integer> java.util.stream.Stream.collect(Collector<? super Integer, Object, List<Integer>> collector) 列出

通常,方法的声明显示其返回类型、方法完整路径和参数。但当我看到方法
java.util.stream.stream.collect时,我感到困惑

该方法似乎有两种返回类型:

<List<Integer>, Object> List<Integer> java.util.stream.Stream.collect(Collector<? super Integer, Object, List<Integer>> collector)

列出java.util.stream.stream.collect(收集器查看方法声明:

public interface Stream<T> extends BaseStream<T, Stream<T>> {
    ...
    /* ...
     * @param <R> the type of the result
     * @param <A> the intermediate accumulation type of the {@code Collector}
     * ...
     */
    <R, A> R collect(Collector<? super T, A, R> collector);
    ...
}
公共接口流扩展了BaseStream{
...
/* ...
*@param结果的类型

*@param关于泛型方法。

第一件事不是返回类型,它为泛型类型参数R和a指定类型。阅读javadoc可能会有所帮助。该方法返回R,因此返回类型必须与从这些链接读取的类型参数相同,在回答之后,我现在明白了。