gpt4 book ai didi

java - Collections.sort 泛型方法签名

转载 作者:行者123 更新时间:2023-11-30 06:04:18 25 4
gpt4 key购买 nike

在 java.util.Collections 中,我们有以下方法签名

public static <T> void sort(List<T> list, Comparator<? super T> c) 

我不明白为什么要指定

Comparator<? super T>

而不是

Comparator<T>

它涵盖哪些用例?

最佳答案

这是一个例子:

class Person {}

class Student extends Person {}

? super T意味着?T 的父类(super class)(或接口(interface)) 。也就是说,如果比较器是 Comparator<Person> ,自 Student继承自Person ,这个比较器应该仍然可以在 Student 上工作。 .

List<Student> students = ...
Collections.sort(students, new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
// compare person
return 0;
}
});

如果我们改变Comparator<? super T>Comparator<T> ,上面的代码将无法编译。

关于java - Collections.sort 泛型方法签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51682419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com