2016-06-18 66 views

回答

3

首先,它不是一個「價值類」。這是一個「以價值爲基礎的課程」。請嘗試使用正確的術語。

Nicolai Parlog的"Value-based Classes"博客條目相當詳細地解釋了這些都是關於什麼。實質上,它們是可能在未來版本的Java中添加的「值類型」的前身。 (可能是Java 10 - 請參閱Project Valhalla。)

enum類型(通常)不是基於值的類的主要原因是它們不一定是不可變的。不變性是班級以價值爲基礎的關鍵要求之一。 (枚舉的其他方面與需求不太匹配,但是枚舉值的特殊性可能意味着這些並不重要。)

現在,「基於價值的類」特性具有沒有直接使用。但它可能會在未來的Java版本中執行。

+0

所以如果一個ENUM是不可變的,它應該表現爲一個基於值的類? – Sander

+1

非常如此。比較enum類的需求和屬性。 (你是裁判......) –

相關問題