1

我看不出值类和枚举之间的区别。如果有人能告诉我它们之间的区别以及它们的用途有什么区别,那就太好了。

4

1 回答 1

3

首先,它不是一个“价值等级”。它是一个“基于价值的类”。请尝试使用正确的术语。

Nicolai Parlog的“基于值的类”博客条目相当详细地解释了这些都是什么。从本质上讲,它们是“值类型”的前身,可能会添加到 Java 的未来版本中。(可能是 Java 10 - 请参阅Project Valhalla。)

类型(通常)不是基于值的类的主要原因enum是它们不一定是不可变的。不变性是基于值的类的关键要求之一。(枚举的其他方面与要求不太匹配,但枚举值的特殊性质可能意味着这些并不重要。)

目前,“基于值的类”特性没有直接用途。但它可能会在 Java 的未来版本中实现。

于 2016-06-18T09:06:06.833 回答