Я не вижу разницы между классом значений и перечислением. Было бы здорово, если бы кто-то мог сказать мне разницу между ними и какова разница в их использовании.Java: В чем разница (также в использовании) между перечислением и классом значений?
ответ
Прежде всего, это не «класс ценности». Это «класс, основанный на ценности». Попробуйте использовать правильную терминологию.
Запись в блоге Николая Парлога "Value-based Classes" подробно объясняет, что это такое. По сути, они являются предшественниками «типов ценности», которые, вероятно, будут добавлены в будущую версию Java. (Вероятно, Java 10 - см. Project Valhalla.)
Основная причина, по которой типы enum
(в общем) не основаны на значении, заключается в том, что они не обязательно неизменяемы. Неизменность является одним из ключевых требований к классу, основанному на ценности. (Есть другие аспекты перечислений, которые не совсем соответствуют требованиям, но особый характер значений перечисления, вероятно, означает, что это не имеет значения.)
Прямо сейчас, характеристика класса, основанная на значении, имеет нет прямой использования. Но это может произойти в будущей версии Java.
Итак, если ENUM неизменен, он должен вести себя как класс, основанный на значении? – Sander
В значительной степени так. Сравните требования и свойства класса enum. (Ты будешь судьей ...) –
Что такое класс ценности – ThiepLV
https://docs.oracle.com/javase/8/docs/api/java/lang/doc-files/ValueBased.html – Sander
Задать вопрос Google, получить дополнительную информацию. – LowLevel