Если вы уже собираетесь полагаться на языковой стандарт Java, тогда я предлагаю использовать простой HashMap вместо создания новых классов для стран и т. Д.
Вот как бы я использовал его, если бы полагался только на локализацию Java:
private HashMap<String, String> countries = new HashMap<String, String>();
String[] countryCodes = Locale.getISOCountries();
for (String cc : countryCodes) {
// country name , country code map
countries.put(new Locale("", cc).getDisplayCountry(), cc.toUpperCase());
}
После того, как вы заполните карту, вы можете получить код ISO из названия страны, когда вам это нужно.
Или же вы можете сделать это кодом ISO для карты названий стран, просто изменив метод put соответствующим образом.