我遇到了一段代码。这行代码到底意味着什么? public class Queue<E extends Element>{
我知道 E 可以是任何对象,但为什么要添加 extends Element
。 Element 是一个单独的类,包含 2 个变量 + getter 和 setter。使用该语法的优点/缺点是什么?
最佳答案
这意味着您可以创建 Queue<E>
的具体实例仅当 E
延伸Element
。例如,这个声明将会失败:
Queue<String> q; // Invalid
...因为String
不扩展Element
.
它很有用,因为在 Queue<E>
的实现中,你(和编译器)知道 E
具有 Element
的属性和方法,因此您可以使用它们。如果声明只是 public class Queue<E>{
,那么如果您尝试使用 Element
E
的属性或方法- 类型参数和成员,编译器会提示,因为 Object
上不存在这些属性/方法.
关于java - java中的代码解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18311350/