Вы не можете создать неизменный массив, в принципе.Самое близкое, что вы можете сделать, - это создать неизменную коллекцию, например, с Гуава .
public static final ImmutableList<String> SECRETS = ImmutableList.of(
"George Tupou V, the King of Tonga, dies in Hong Kong at the age of 63.",
"Joachim Gauck is elected President of Germany.",
"Lindsey Vonn and Marcel Hirscher win the Alpine Skiing World Cup.");
. Вы можете использовать enum
, задав каждому значению перечислениясвязанная строка, например:
public enum Secret {
SECRET_0("George..."),
SECRET_1("Joachim..."),
SECRET_2("Lindsey...");
private final String text;
private Secret(String text) {
this.text = text;
}
public String getText() {
return text;
}
}
... но если вы просто захотите строки как коллекцию, я бы использовал неизменный список.Перечисления велики , когда они уместны , но нет никаких признаков того, что они действительно уместны в этом случае.
РЕДАКТИРОВАТЬ: Как отмечено в другом ответе, это равно совершенно верно:
public static final String[] FOO = {"aa", "bb"};
... при условии, что он не во внутреннем классе (о котором вы нигде не упоминали в своем вопросе).Тем не менее, это очень плохая идея , поскольку массивы всегда изменчивы.Это не «постоянный» массив; ссылка не может быть изменена, но другой код может написать:
WhateverYourTypeIs.FOO[0] = "some other value";
... что, я подозреваю, вам не нужно.