Spec-Zone .ru
спецификации, руководства, описания, API
|
Эта опция позволяет плагину зависимых от локали данных и служб. Таким образом третьи стороны в состоянии обеспечить реализации большинства чувствительных к локали классов в java.text
и java.util
пакеты.
Реализация SPI (Интерфейс Поставщика услуг) основана на абстрактных классах и интерфейсах Java, которые реализуются поставщиком услуг. Во времени выполнения Java механизм загрузки class используется, чтобы динамически определить местоположение и загрузить классы, которые реализуют SPI.
Можно использовать чувствительный к локали SPI служб, чтобы обеспечить следующую локаль чувствительные реализации:
BreakIterator
объектыCollator
объектыLocale
classDateFormat
объектыDateFormatSymbol
объектыNumberFormat
объектыDecimalFormatSymbols
объектыСоответствующие SPI содержатся оба в java.text.spi
и в java.util.spi
пакеты:
java.util.spi |
java.text.spi |
|
|
Например, если требуется обеспечить a NumberFormat
объект для новой локали, необходимо реализовать java.text.spi.NumberFormatProvider
class. Вы должны расширить этот class и реализовать его методы:
getCurrencyInstance(Locale locale)
getIntegerInstance(Locale locale)
getNumberInstance(Locale locale)
getPercentInstance(Locale locale)
Locale loc = new Locale("da", "DK"); NumberFormat nf = NumberFormatProvider.getNumberInstance(loc);
Эти методы сначала проверяют, поддерживает ли среда выполнения Java требуемую локаль; если так, они используют ту поддержку. Иначе, методы вызывают getAvailableLocales()
методы установленных провайдеров для соответствующего интерфейса, чтобы найти провайдера, который поддерживает требуемую локаль.