如何在Java中重新加载静态hashMap



我想知道是否有可能"重新加载";更改后的哈希图。假设我有这样的课:

public class CountryCultures {
static final EnumMap<Country, Culture> countriesMap;
static {

countriesMap = new EnumMap<>(Country.class);
//Culture class has a single string attribute to set the language
Culture spanishCulture = new Culture ("Spanish")
countriesMap.put(Country.Spain, spanishCulture);
Culture englishCulture = new Culture ("English")
countriesMap.put(Country.England, englishCulture);
}
}

然后我访问该地图并修改它:

CountryCultures.countriesMap.get(Country.Spain).setCultureLanguage("Catalonian");

在我修改并使用带有更改的映射后,我想将其重置为CountryCultures类中给定的原始值。类似于:

CountryCultures.countriesMap.reload;

有可能吗?

是。将静态初始化定义为调用重载方法,并从静态块中调用它。

public class CountryCultures {
private static Map<Country,Culture> countriesMap;
static {
countriesMap = new HashMap<>;
reload();
}
public static void reload() {
countriesMap.clear();
... populate with baseline mappings ...
}
}

最新更新