我遇到了一段代碼。這行代碼實際上是什麼意思? 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 )。 –