У меня есть приложение, использующее этот класс: java.util.Currency
Почему java.util.Currency.getDisplayName() возвращение нулевой
В приложении, я поддерживаю карту кодов стран в регионы. Я получаю языковой стандарт, проезжая код страны
Когда я передаю этот языковой стандарт до Currency.getInstance()
, он возвращает правильную валюту. Я проверил, что по телефону Currency.getCurrencyCode()
Однако, когда я называю getDisplayName()
на том же экземпляре валюты, она возвращает null
Такое поведение не происходит на моей Dev машине, только на моем тестовом сервере
И мой Dev машины и использовать сервер Ubuntu 12.04 LTS с:
java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
запускает приложение внутри котом
я мог бы что-то здесь
редактировать
import java.util.Currency;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
...
public static Map<String, Locale> COUNTRY_TO_LOCALE_MAP;
public static void initCountryToLocaleMap() {
if (COUNTRY_TO_LOCALE_MAP != null) {
return;
}
COUNTRY_TO_LOCALE_MAP = new HashMap<String, Locale>();
Locale[] locales = Locale.getAvailableLocales();
for (Locale l : locales) {
COUNTRY_TO_LOCALE_MAP.put(l.getCountry(), l);
}
}
public static Locale getLocaleFromCountryCode(String countryCode) {
if (countryCode == null) {
return null;
}
initCountryToLocaleMap();
Locale locale = COUNTRY_TO_LOCALE_MAP.get(countryCode);
if (locale == null) {
return new Locale("", countryCode);
}
return locale;
}
public static void main(String args[]) {
initCountryToLocaleMap();
String countryCode = "ZA";
Locale locale = getLocaleFromCountryCode(countryCode);
Currency currency = Currency.getInstance(locale);
System.out.println("currencyCode: " + currency.getCurrencyCode());
System.out.println("displayName: " + currency.getDisplayName());
}
отсутствует После запуска основной(), я получил следующий вывод: от Dev машины:
currencyCode: ZAR
displayName: South African Rand
с тестового сервера:
currencyCode: ZAR
Просьба указать код.Мы не можем помочь вам, если вы не найдете что-то конкретное, чтобы посмотреть на – StormeHawke
проверить локаль по умолчанию на обоих ваших серверах (DEV и TEST) –
Вы уверены, что ваш разработчик и тестовая машина используют ту же версию JDK? –