Java:枚举和值类之间有什么区别(也在使用中)?

标签 java enumeration value-class

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

最佳答案

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

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

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

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

关于Java:枚举和值类之间有什么区别(也在使用中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37894769/

相关文章:

java - 条件与对象等待/通知

java - JAVA中使用Atomic和无限循环做同步

c# - 意见请求 : for static values, 使用枚举或实体更好吗?

c++ - 在 C++ 中枚举 k 维超立方体顶点的最有效方法是什么?

scala - 如何在没有开销的情况下丰富值(value)类别?

c++ - 从值类继承还是复合呢?

java - 单个 java 进程的排队/工作线程架构

java - 如何从 InputStream 获取 SelectableChannel?

swift - 如何快速计算 Sprite 的数量

scala - 如何使用 Mockito 模拟返回值类实例的函数?