我遇到了一段代码。这行代码实际上是什么意思?public class Queue<E extends Element>{
我知道 E 可以是任何对象,但为什么要添加extends Element
. Element 是一个单独的类,包含 2 个变量 + getter 和 setter。使用该语法的优点/缺点是什么?
问问题
54 次
2 回答
4
这意味着您可以创建Queue<E>
only if E
extends的具体实例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 回答