В JDK 6
Я реализовал класс CalendarData_en_AT для языкового стандарта (en, AT), который является пользовательским языком (не определенным в jre). Я вижу, что когда я пытаюсь загрузить локаль, используя метод Calendar.getInstance()
, он загружает CalendarData_en.class
При дальнейшей отладке я обнаружил, что он выбирает только локали, указанные в LocaleMetaDataInfo
class
Что нужно сделать, чтобы при вызове Calendar.getInstance(new Locale(en, AT))
он загружался CalendarData_en_AT.class
Код ниже:
У меня есть класс CalendarData_en_AT.java
public class CalendarData_en_AT extends LocaleNamesBundle{
public CalendarData_en_AT(){
}
protected final Object[][] getContents(){
return
new Object[][] {
new Object[] { "firstDayOfWeek", "2" },
new Object[] { "minimalDaysInFirstWeek", "4" }
};
}
}
Скомпилированный класс заключен в файл .jar и помещен в jre / lib / ext
Теперь из моего тестового класса
если я позвоню Calendar.getInstance(new Locale("en","AT")).getFirstDayOfWeek()
он должен вернуть 2, но на данный момент он возвращает 1, причина в том, что он загружает CalendarData_en.class
предоставить, а не CalendarData_en_AT.class
, который реализован пользователем