【发布时间】:2017-03-14 22:53:09
【问题描述】:
在wikipedia article about co- and contravariance 中有一个示例用例,然后是一个解释性句子,描述了类型声明的含义。我觉得这非常有用。看了几遍解释,感觉我明白了。
<T extends Comparable<? super T>> T max(Collection<T> coll);
有界通配符
? super T传达max仅从Comparable 接口调用逆变方法的信息。
有人可以用类似的语言解释一下,java.util.function.Consumer@FunctionalInterface 中 andThen() 函数的类型声明是什么意思:
public interface Consumer<T> {
void accept(T t);
default Consumer<T> andThen(Consumer<? super T> after) {
例如
有界通配符
? super T传达andThen....的信息?
我还有一个次要问题:我怎样才能找到自己,这样的类型声明意味着什么?例如。在上面来自java.util.Collections util 类的第一个示例中:类的类型边界如何 - T - 能够传达有关 T 的方法正在做什么的信息?任何人都可以指出 Java 语言规范中的相关段落吗?
【问题讨论】:
标签: java types covariance contravariance