Лично я бы не выставлял их как массив, содержимое которого может быть изменено кем угодно.Я бы, вероятно, вместо этого использовал бы неизменяемый список - и , вероятно, раскрывают это через свойство, а не как поле.Инициализация будет выглядеть примерно так:
private static final List<String> labels;
private static final List<String> values;
static
{
List<String> mutableLabels = new ArrayList<String>();
List<String> mutableValues = new ArrayList<String>();
for (LOGICAL x : LOGICAL.values())
{
mutableLabels.add(x.label);
mutableValues.add(x.value);
}
labels = Collections.unmodifiableList(mutableLabels);
values = Collections.unmodifiableList(mutableValues);
}
(Если вы уже используете Guava , вы можете даже использовать вместо нее ImmutableList
и выставлять коллекции таким образом, чтобы сделатьясно, что они неизменны.)