我无法理解整个泛型声明,即使在阅读了无数关于 Java 的文章和条目之后,似乎也没有一个能够以简单明了的方式解释它。请问谁能给我解释一下?:
class Something<T> {...}
我知道 T 是什么,并且我知道当我们想要为传入的任何类型的 Object 类型编写通用定义/方法时,我们使用泛型,而不是针对一种类型的 Object 扩展使用不同类型的方法,我们编写一个可以包含一种或多种类型的通用类型(因此为大写 T)。但最让我烦恼的一件事是下一个声明示例:
public <T extends Comparable<T>> void Something{...}
首先;Comparable 是一个接口而不是一个类(如果我错了,请纠正我)所以第一个为什么是它extends
而不是implements
. 现在,为什么必须在之前void
和现在声明(整个 <T ...> 事情) Comparable<T>
?这意味着什么?进入的对象类型必须有implements Comparable<T>
?因此,如果我想将类作为类型参数class Something{...}
传递,我会得到一个错误,但传递class Something implements Comparable<T>{...}
就可以了吗?请向我揭开这个神秘的面纱:(我明天有一个考试,如果不掌握这个我就不能转移到其他事情...... :(