У меня есть один файл констант Java, который содержит около 1000 записей, и все они являются только строковыми типами, например
public static String PF_EMPLOYER = "PF-Employer";
public static String ESI_EMPLOYER = "ESI-Employer";
public static String TOTAL_CTC = "Total CTC";
public static String INCENTIVE = "Incentive";
public static String PF_EMPLOYEE = "PF-Employee";
public static String ESI_EMPLOYEE = "ESI-Employee";
==and so on could be more than 1000=======
Мне просто нужны все эти значения String в статическом ArrayList или HashMap, где Integer в HashMap будет 0,1,2,3.... 1000.
Я застрял, чтобы узнать какой-либо эффективный способ выполнить эту задачу. Даже если Spring предоставляет какое-либо решение, я также готов пойти на это.
Невозможно для меня переместить постоянный файл в любом файле свойств.
Обратите внимание, что я использую JDK 7 для JDK 8.
Если я правильно понимаю ваши требования, единственный естественный способ сделать то, что вы хотите, должен использовать отражение. Если вы называете класс именем ConstClass
это может быть что-то вроде:
HashMap<String, String> map = new HashMap<>();
for (Field field: ConstClass.class.getFields()) {
if (String.class.isAssignableFrom(field.getType())) {
int modifiers = field.getModifiers();
if (Modifier.isStatic(modifiers)) {
map.put(field.getName(), (String) field.get(ConstClass.class));
}
}
}
То, что вы получаете на map
все поля, содержащие static String
.