我遇到了一段代码。这行代码实际上是什么意思? public class Queue<E extends Element>{
我明白E可以是任何对象,但为什么要加上extends Element
。元素是一个独立的类,包含2个变量+ getters和setter。使用该语法的优点/缺点是什么?java中的代码解释
0
A
回答
4
这意味着只有在E
延伸为Element
时,您才可以创建Queue<E>
的具体实例。因此,例如,这个声明会失败:
Queue<String> q; // Invalid
...因为String
没有延伸Element
。
这很有用,因为在Queue<E>
的实现中,你(和编译器)知道E
的属性和方法为Element
,所以你可以使用它们。如果声明只是public class Queue<E>{
,那么如果您尝试使用Element
属性或E
型参数和成员的方法,编译器会抱怨,因为Object
上不存在这些属性/方法。
+0
+为好例子 – Dodi
1
类型E
的通用Queue
类实例化必须从Element
继承。
Queue
类中的代码依赖于(调用了)类方法。
相关问题
- 1. Java中的代码解释
- 2. 在Java中回调(代码解释)
- 3. Android中的代码解释
- 4. Android java的源代码解释
- 5. 解释代码
- 6. 解释代码
- 7. 代码解释
- 8. 代码解释
- 9. 解释代码
- 10. 解释代码
- 11. 请解释此java脚本行代码
- 12. JAVA代码片段:输出解释
- 13. 请解释此位交换代码(Java)
- 14. 正确解释伪代码? JAVA
- 15. 请解释这个java代码
- 16. 霍夫曼代码解释Java
- 17. 请解释这个java代码?
- 18. C++中的现代解释器代码?
- 19. 与代码解释
- 20. 代码解释as.Date
- 21. SED代码解释
- 22. OnResultExecuted()代码解释
- 23. 代码解释(MPICH)
- 24. Stata代码解释
- 25. 解释Python代码
- 26. Matlab:repmat代码解释
- 27. array.filter代码解释
- 28. 解释matlab代码
- 29. 代码解释js
- 30. FIFO代码解释
它限制'Queue'只能开始包含'Element'扩展的Object。它基本上意味着,至少这个'Queue'只包含'Element'(或者从它扩展的对象)的实例......你应该看看[Generics](http://docs.oracle.com)如需更多详细信息;) – MadProgrammer
只需经过 - [泛型常见问题解答 - 类型参数界限](http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeParameters.html#Bounds )。 –