Программирование на Java

       

Классы ListResourceBundle и PropertiesResourceBundle


У класса ResourceBundle определено два прямых потомка ListResourceBundle и PropertiesResourceBundle. PropertiesResourceBundle хранит набор ресурсов в файле, который представляет собой набор строк.

Алгоритм конструирования объекта, содержащего набор ресурсов, был описан в предыдущем параграфе. Во всех случаях, когда в качестве последнего элемента используется .properties, например, baseclass + "_" + language1 + "_" + country1 + ".properties", речь идет о создании ResourceBundle из файла с наименованием baseclass + "_" + language1 + "_" + country1 и расширением properties. Обычно класс ResourceBundle помещают в пакет resources, а файл свойств – в каталог resources. Тогда для того, чтобы инстанциировать нужный класс, необходимо указать полный путь к этому классу (файлу):

getBundle("resources.MyResource", Locale.getDefault());

ListResourceBundle хранит набор ресурсов в виде коллекции и является абстрактным классом. Классы, которые наследуют ListResourceBundle, должны обеспечить:

  • переопределение метода Object[][] getContents(), который возвращает массив ресурсов;
  • собственно двумерный массив, содержащий ресурсы.

Рассмотрим пример:

Пример 14.32.

(html, txt)

Результатом будет:

Element 1 Element 2 Element 3

Создание ресурсов для локалей, отличных от локали по умолчанию, осуществляется так же, как было показано для ResourceBundle.



Содержание раздела