我有一个Java常量文件,它包含大约1000条记录,并且只是String类型 e.g。
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=======
我只想在静态ArrayList或HashMap中使用所有这些String值,其中HashMap中的Integer将为0,1,2,3 .... 1000。
我很难找到任何有效的方法来完成这项任务,即使Spring提供任何解决方案,我也准备好了。
我无法在任何属性文件中移动常量文件内容。
请注意,我使用JDK 7无法使用JDK 8.
答案 0 :(得分:1)
如果我正确理解您的要求,那么唯一的自然做您想要的方式应该是使用反射。如果您的班级名称为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
的所有字段。