Либо маршалл к int
:
int ordinal = values.value1.ordinal()
//unmarshalling
values.values[ordinal];
или к String
:
String name = values.value1.name();
//unmarshalling
values.valueOf(name);
Первый сохраняет некоторые пробелы (32-битные в отличие от строк различной длины)), но его сложнее поддерживать, например, перестановка значений enum
нарушит обратную совместимость ordinal()
.С другой стороны, ordinal()
позволяет переименовывать enum
значения ...