Java:枚举和值class有什么区别(也在使用中)?
Java: What is the difference (also in use) between an enumeration and a value class?
我看不出值 class 和枚举之间的区别。如果有人能告诉我它们之间的区别以及它们在使用上的区别是什么,那就太好了。
首先,它不是"value class"。这是一个"value-based class"。请尝试使用正确的术语。
"Value-based Classes" blog entry by Nicolai Parlog explains in considerable detail what these are all about. In essence, they are a predecessor of "value types" that are likely to be added in a future version of Java. (Probably Java 10 - see Project Valhalla.)
enum
类型(通常)不是基于值的 classes 的主要原因是它们不一定是不可变的。不变性是 class 基于价值的关键要求之一。 (枚举的其他方面与要求不太匹配,但枚举值的特殊性质可能意味着这些无关紧要。)
目前,"value-based class" 特性没有直接用途。但它可能会在 Java.
的未来版本中实现
我看不出值 class 和枚举之间的区别。如果有人能告诉我它们之间的区别以及它们在使用上的区别是什么,那就太好了。
首先,它不是"value class"。这是一个"value-based class"。请尝试使用正确的术语。
"Value-based Classes" blog entry by Nicolai Parlog explains in considerable detail what these are all about. In essence, they are a predecessor of "value types" that are likely to be added in a future version of Java. (Probably Java 10 - see Project Valhalla.)
enum
类型(通常)不是基于值的 classes 的主要原因是它们不一定是不可变的。不变性是 class 基于价值的关键要求之一。 (枚举的其他方面与要求不太匹配,但枚举值的特殊性质可能意味着这些无关紧要。)
目前,"value-based class" 特性没有直接用途。但它可能会在 Java.
的未来版本中实现