这个符号在 Java 中是什么意思? (比较器<? super T> c)

What does this notation mean in Java? (Comparator<? super T> c)

对于我的 Java class,我需要根据这个函数头创建一个函数体:

public static <T> void sort(T[] a, Comparator<? super T> c)

Static 后面的“”是什么意思?带问号的 Comparator 是什么? 我对 Comparators 的了解是它是一个可以实现的接口,它有两个方法 .compare 和 .equal。

谢谢。

Comparator 是参数化类型,T 是类型参数,您应该查看 Java 5 Generics 上的一些文档。

Post-java5,Comparator 接口中的比较方法现在具有此签名:

int compare(T o1,T o2)

简化很多,T 是 Comparator 的特定实例能够管理的泛型类型的占位符,在 java5 之前它本来是一个对象。

另请参阅此类似内容 question