我無法看到值類和枚舉之間的區別。如果有人能告訴我他們之間的區別以及他們使用的區別是什麼,那將是非常棒的。Java:枚舉和值類之間有什麼區別(也在使用中)?
1
A
回答
3
首先,它不是一個「價值類」。這是一個「以價值爲基礎的課程」。請嘗試使用正確的術語。
Nicolai Parlog的"Value-based Classes"博客條目相當詳細地解釋了這些都是關於什麼。實質上,它們是可能在未來版本的Java中添加的「值類型」的前身。 (可能是Java 10 - 請參閱Project Valhalla。)
enum
類型(通常)不是基於值的類的主要原因是它們不一定是不可變的。不變性是班級以價值爲基礎的關鍵要求之一。 (枚舉的其他方面與需求不太匹配,但是枚舉值的特殊性可能意味着這些並不重要。)
現在,「基於價值的類」特性具有沒有直接使用。但它可能會在未來的Java版本中執行。
+0
所以如果一個ENUM是不可變的,它應該表現爲一個基於值的類? – Sander
+1
非常如此。比較enum類的需求和屬性。 (你是裁判......) –
相關問題
- 1. 枚舉和枚舉之間的區別
- 2. scala和java枚舉之間的區別
- 3. '枚舉:類型'和簡單'枚舉'之間的區別是什麼
- 4. java中枚舉數與枚舉之間的區別
- 5. 枚舉:使用枚舉和類與靜態變量之間的區別
- 6. BaseDevModeType:這兩個枚舉之間有什麼區別?
- 7. ASN.1枚舉類型和選擇類型有什麼區別?
- 8. 自舉和自舉鏈輪之間有什麼區別?
- 9. 如何檢測使用libclang的枚舉和範圍枚舉之間的區別?
- 10. Java枚舉和迭代器之間的區別
- 11. ||之間有什麼區別?和|在R?
- 12. 如何區分標誌枚舉和普通枚舉之間的區別?
- 13. java類繼承和javabean繼承之間有什麼區別?
- 14. 在C#和Java中的易變性之間有什麼區別?
- 15. (類型)值和類型(值)之間的區別是什麼?
- 16. 在src或href中使用「http://」和「//」之間有什麼區別?
- 17. ASP.NET MVC:在ActionFilterAttribute類中,OnActionExecuted和OnResultExecuted之間有什麼區別?
- 18. 爲什麼即使在枚舉中沒有定義有效值時也允許使用枚舉轉換
- 19. C#中值類型和引用類型之間有什麼區別?
- 20. &&和||有什麼區別?在Debian和Ubuntu之間使用
- 21. 是否有客戶枚舉類型和系統枚舉類型之間的區別
- 22. dpm()和dsm()之間有什麼區別?
- 23. @dynamic和@synthesize之間有什麼區別?
- 24. vbNullString和「」之間有什麼區別嗎?
- 25. * zoom和zoom之間有什麼區別?
- 26. String.Concat,string.format和+之間有什麼區別?
- 27. StaticLayout和DynamicLayout之間有什麼區別
- 28. WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之間有什麼區別?
- 29. (int)和intval()之間有什麼區別?
- 30. 之間有什麼區別= +和+ =
什麼是價值類 – ThiepLV
https://docs.oracle.com/javase/8/docs/api/java/lang/doc-files/ValueBased.html – Sander
問Google,獲取更多信息。 – LowLevel