java - java中Comparator中super的使用

标签 java comparator

我明白了

Comparator < ? super T> comp

它根据指定比较器定义的顺序返回给定集合的最大元素。但是我不明白的目的

super T

谁能解释一下?

最佳答案

术语? super T 的意思是“未知类型,或者是 T 的父类(super class)”,用泛型的说法就是它的下界是 T。

使用此签名是因为 T 可以分配给任何类型为 T 或 T 的父类(super class)的变量,并与之进行比较。即,如果 Comparator 可以在其 compare() 方法中接受 T 的父类(super class),你可以传入一个 T。

这遵循 PECS 助记符:“Producer Extends,Consumer Super”,这意味着事物的生产者应该与具有上限边界(?扩展 T)和消费者(如比较器实现)的事物一起工作使用的东西)应该与边界一起工作(?super T)。

关于java - java中Comparator中super的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13786298/

相关文章:

c# - 比较 3 个对象

java - JMS 轮询器事务

java - 为什么在尝试访问对象时会出现空指针异常?

java - 接受自定义比较器并将其应用于列表的方法。 java

java - 在 MinMaxPriorityQueue Guava 中更改比较器

sorting - 如何在 Kotlin 中根据多种类型和值进行排序?

java - Map.Entry.comparingByValue().reversed() 的类型是什么?

java - 在 Java 中使用键盘 "ContextMenu"按钮

java - 基本的java : scanning files,数组

java - 从外部Java屏幕资源获取 "image"