【发布时间】:2016-01-25 15:52:43
【问题描述】:
我正在学习 Java,对以下两个定义之间的区别感到困惑:
public static <T extends Object & Comparable<? super T>>
T max(List<? extends T> list, int begin, int end) {
...
}
(取自oracle java教程中练习8的答案:Tutorial) 和
public static <T extends Comparable<T>>
T max (List<T> list, int begin, int end) {
...
}
【问题讨论】:
-
Object &基本没有意义。 -
视情况而定。没有上下文是的,但是官方 API 中的
Collections.max(Collection<? extends T> coll)使用Object &作为其签名的一部分以保持二进制兼容性。所以它并不总是毫无意义的。
标签: java