2016-06-18 4 views
1

値クラスと列挙型の違いを確認できません。誰かが私にそれらの違いと使い方の違いを教えてもらえるといいですね。Java:列挙型と値クラスの違いは何ですか?

+2

値クラス – ThiepLV

+2

とはhttps://docs.oracle.com/javase/8/docs/api/java/lang/doc-files/ValueBased.html – Sander

+0

Googleに問い合わせると、詳細情報が表示されます。 – LowLevel

答えて

3

まず、「価値クラス」ではありません。これは「価値に基づくクラス」です。正しい用語を使用してください。

"Value-based Classes" Nicolai Parlogのブログエントリは、これらの内容についてかなり詳細に説明しています。本質的には、Javaの将来のバージョンで追加される可能性が高い「値型」の前身です。 (おそらくJava 10 - Project Valhallaを参照してください)enumタイプ(一般的に)が値ベースのクラスではない主な理由は、必ずしも不変ではないということです。不変性は、クラスが価値を生み出すための鍵となる要件の1つです。 (enumの他の側面は、要件とはまったく一致しませんが、enum値の特殊な性質はおそらく重要でないことを意味します)。

「value-based class」特性は、直接使用しないでください。しかし、それはJavaの将来のバージョンで行うことができます。

+0

ENUMが不変の場合、値ベースのクラスとして動作するはずですか? – Sander

+1

かなりそうです。 enumクラスの要件とプロパティを比較します。 (あなたは裁判官になる...) –

関連する問題