gpt4 book ai didi

java - 通配符类型在类型参数中提供了哪些灵活性?

转载 作者:行者123 更新时间:2023-12-01 04:50:47 27 4
gpt4 key购买 nike

考虑静态实用程序中的通用 min 方法,该方法旨在返回集合中的最小元素。为什么我们需要将其声明为

 public static <T extends Comparable<? super T>> T min(Set<? extends T> producerSet)

如果我们将其声明为

,会出现什么问题
public static <T extends Comparable<T>> T min(Set<? extends T> producerSet)

类型参数中的通配符类型给我带来了什么灵 active ?

最佳答案

这涵盖了 T 是 Comparable 实现者的子类的情况。考虑以下因素:

public static class A implements Comparable<A> {

public int compareTo(A o) {
return 0;
}
}
public static class B extends A {}

public static <T extends Comparable<T>> T min(Set<? extends T> producerSet) {
return null;
}

public static void main(String[] args) {
Set<B> set = new HashSet<B>();
min(set); // incompatible with method signature
}

关于java - 通配符类型在类型参数中提供了哪些灵活性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15005968/

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