如何创建包含所有java类常量的HashMap或Arraylist

时间:2014-09-28 16:25:47

标签: java arraylist hashmap

我有一个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.

1 个答案:

答案 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的所有字段。