0

我遇到了一段代码。这行代码实际上是什么意思?public class Queue<E extends Element>{我知道 E 可以是任何对象,但为什么要添加extends Element. Element 是一个单独的类,包含 2 个变量 + getter 和 setter。使用该语法的优点/缺点是什么?

4

2 回答 2

4

这意味着您可以创建Queue<E>only if Eextends的具体实例Element。因此,例如,此声明将失败:

Queue<String> q; // Invalid

...因为String不扩展Element

它很有用,因为在 的实现中Queue<E>,您(和编译器)知道E具有 的属性和方法Element,因此您可以使用它们。如果声明只是public class Queue<E>{,那么如果您尝试使用-typed 参数和成员Element的属性或方法E,编译器会抱怨,因为这些属性/方法不存在于Object.

于 2013-08-19T10:19:39.137 回答
1

E泛型Queue类实例化的类型必须继承自Element.

类中的代码Queue取决于(调用)Element类方法。

于 2013-08-19T10:19:49.783 回答