java泛型,关于extends和super的说明

java泛型,关于extends和super的说明,java,generics,Java,Generics,这是CompletionStage的类定义 public interface CompletionStage<T> { ... } 公共接口完成阶段{ ... } 这就是我们应用的方法 public <U> CompletionStage<U> thenApply(Function<? super T,? extends U> fn); public CompletionStage then apply(函数我会问,哪个签名最有意义?有三个选

这是CompletionStage的类定义

public interface CompletionStage<T> {
...
}
公共接口完成阶段{
...
}
这就是我们应用的方法

public <U> CompletionStage<U> thenApply(Function<? super T,? extends U> fn);

public CompletionStage then apply(函数我会问,哪个签名最有意义?有三个选项:


  • Function
    fn
    消耗阶段的结果。因此,它可以是一个接受T或T的任何超类型的函数,因为它接收的任何T也是该超类型的实例。它不需要T的子类型,因为无法保证阶段的结果将是该特定类型。愚蠢的标题。我修正了这是给你的。