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