我是 Java 新手,我正在尝试了解泛型。我试图实现一个binarySearch()
在Collections
类中也可以找到的简单版本的方法。我查找了方法签名,它是这样的:
public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key) {
// definition
}
我想知道如果您将方法定义更改为这样,上面的方法是否仍然接受相同的数据类型:
public static <T extends Comparable<? super T>> int binarySearch(List<T> list, T key) {
// definition
}
如果不是,两者之间有什么区别?谢谢!
考虑这些类:
class A extends Comparable<A> { /* ... */ }
class B extends A { /* ... */ }
现在用这些类型定义一个键和一个列表:
A key = new B();
List<B> list = List.of(key);
您可以使用这些参数调用第一种形式,但不能调用第二种形式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句