我想知道是否有可能"重新加载";更改后的哈希图。假设我有这样的课:
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 ...
}
}