Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
56_Java.pdf
Скачиваний:
210
Добавлен:
18.02.2016
Размер:
2.39 Mб
Скачать

Скачано с сайта http://ivc.clan.su

отраженных методов компонента сравниваются с сигнатурами, заданными соглашениями по присвоению имен.

Далее — см. пример BeanDumper.java.

6.Если Bean-компонент имеет пользовательский класс Beanlnfo, статический метод getBeanlnfo() класса Introspector, вызываемый визуальной средой, возвращает объект типа Beanlnfo этого класса. Далее визуальная среда работает с этим объектом.

Пользовательские классы Beanlnfo позволяют изменять и ограничивать информацию о признаках Bean-компонента, которая извлекается при использовании рефлексии и представляется в виде списков свойств, событий, методов.

7.Обычно пользовательский класс Beanlnfo создается на основе класса java.beans.SimpleBeanInfo, реализующего интерфейс java.beans.BeanInfo. (Это удобно, так как в интерфейсе объявлено 7 методов.)

Методы класса SimpleBeanlnfo обычно возвращают значение (чаще всего — null), заставляющее класс Introspector использовать отражение на стандартные соглашения об именах для получения нужной информации о Bean.

Пользовательский класс Beanlnfo должен расширить класс SimpleBeanlnfo и переопределить нужные методы. Класс Beanlnfo должен находиться в одном пакете с классом компонента и иметь то же имя с добавлением Beanlnfo. Класс Beanlnfo архивируется в jar-файл вместе с компонентом Bean.

8.Для изменения списка методов, которые Bean-компонент оставляет доступными для других компонентов, соответствующий класс Beanlnfo должен переопределять метод getMethodDescriptors(), изменения списка показанных свойств — метод getPropertyDescriptors(), изменения списка поддерживаемых событий — метод getEventSetDescriptors().

Далее — см. пример ColorsBeanBeanlnfo.java

9.Класс Beanlnfo используется и для описания Bean-компонентов, которые не придерживаются стандартных соглашений об именах.

10.Для Bean-компонентов могут быть предусмотрены растровые пиктограммы. GIF-файлы с пиктограммами включаются jar-файлы Bean и загружаются визуальной средой с помощью переопределенного метода класса SimpleBeanlnfo loadlmage().

Понятие сериализации

Сериализация — это процесс преобразования объекта (с учётом его состояния) в поток (последовательность) байтов. Десериализация представляет собой обратный процесс восстановления объекта из данных потока (преобразования потока байтов в объект). Состояние объектов полностью определяется значениями его полей, не являющихся static- и transient-полями.

Потоки байтов могут передаваться в пределах сети (с целью использования в рамках RMIтехнологии), сохраняться на диске в виде файлов, а затем при необходимости восстанавливаться в виде «живых» объектов. В технологии JavaBeans сериализация используется для сохранения (в файле) и восстановления состояния настроенных Веап-компонентов.

Обеспечение сериализуемости Bean

Визуальная среда (компоновщик) с помощью сериализации сохраняет настроенные и связанные компоненты и восстанавливает.

Чтобы гарантировать сериализуемостъ Bean, необходимо объявить, что его класс или один из суперклассов класса реализует интерфейс java.io.Serializable. Это так называемый интерфейс-маркер

(пустой интерфейс). Интерфейс Serializable не объявляет никаких методов. Он просто указывает на то, что класс может быть сериализован.

48

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]