Читаем Программирование на Java полностью

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

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

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

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

собственно двумерный массив, содержащий ресурсы.

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

public class MyResource extends ListResourceBundle { Vector v = new Vector(); Object[][] resources = { {"StringKey","String"}, {"DoubleKey",new Double(0.0)}, {"VectorKey",v}, }; public MyResource() { super(); v.add("Element 1"); v.add("Element 2"); v.add("Element 3"); } protected Object[][] getContents() { return resources; } } public class Test { public Test() { } public static void main(String[] args) { Test test = new Test(); ResourceBundle rb = ResourceBundle.getBundle("experiment.MyResource",Locale.getDefault()); Vector v = (Vector)rb.getObject("VectorKey"); Iterator it = v.iterator(); while(it.hasNext()) { System.out.println(it.next()); } } } Пример 14.32.

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

Element 1 Element 2 Element 3

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

Заключение

В этой лекции были рассмотрены вспомогательные классы пакета java.util. Как можно было заметить, они относятся к самым разным задачам, а потому редкая программа обходится без использования хотя бы одного класса этого пакета.

Напомним кратко все основные классы и их особенности:

Для работы с датой и временем должны использоваться классы Date, Calendar. Класс Calendar абстрактный, существует конкретная реализация этого класса GregorianCalendar.

Интерфейс Observer и класс Observable реализуют парадигму MVC и предназначены для уведомления одного объекта об изменении состояния другого.

Коллекции ( Collections ) не накладывают ограничений на порядок следования и дублирование элементов.

Списки ( List ) поддерживают порядок элементов (управляются либо самими данными, либо внешними алгоритмами).

Наборы ( Set ) не допускают дублированных элементов.

Карты ( Maps ) используют уникальные ключи для поиска содержимого.

Применение массивов делает добавление, удаление и увеличение количества элементов затруднительным.

Использование связанных списков ( LinkedList ) обеспечивает хорошую производительность при вставке, удалении элементов, но снижает скорость индексированного доступа к ним.

Использование деревьев ( Tree ) облегчает вставку, удаление и увеличение размера хранилища, снижает скорость индексированного доступа, но увеличивает скорость поиска.

Применение хэширования облегчает вставку, удаление и увеличение размера хранилища, снижает скорость индексированного доступа, но увеличивает скорость поиска. Однако хэширование требует наличия уникальных ключей для запоминания элементов данных.

Класс Properties удобен для хранения наборов параметров в виде пар ключ/значение. Параметры могут сохраняться в потоки (файлы) и загружаться из них.

Реализация классом интерфейса Comparator позволяет сравнивать экземпляры класса друг с другом и, соответственно, сортировать их, например, в коллекциях.

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

StringTokenizer - вспомогательный класс, предназначенный для разбора строк на лексемы.

При необходимости работать с сущностями, представленными в виде битовых последовательностей, удобно использовать класс BitSet.

Манипулировать ресурсами, которые различаются в зависимости от локализации, удобно с помощью классов ResourceBundle, ListResourceBundle, PropertiesResourceBundle. Собственно локаль задается с помощью класса Locale.

Интернет-Университет Информационных Технологий

http://www.INTUIT.ru

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

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных