Класс Introspector
public class Introspector extends Object
Для каждого из этих трех видов сведений Introspector отдельно анализирует класс bean-компонента и его суперклассы, выявляя явную или неявную информацию, и использует ее для создания объекта BeanInfo, который исчерпывающе описывает целевой bean-компонент.
Для каждого класса «Foo» явная информация может быть доступна, если существует соответствующий класс «FooBeanInfo», который при запросе этих сведений возвращает ненулевое значение. Сначала мы ищем класс BeanInfo, добавляя «BeanInfo» к полному имени целевого класса bean-компонента с указанием пакета, чтобы получить новое имя класса. Если это не удается, мы берем последний компонент имени класса и ищем этот класс в каждом из пакетов, указанных в пути поиска BeanInfo.
Таким образом, для класса, например, «sun.xyz.OurButton» мы сначала ищем класс BeanInfo с именем «sun.xyz.OurButtonBeanInfo», а если это не удается, ищем класс OurButtonBeanInfo во всех пакетах пути поиска BeanInfo. При пути поиска по умолчанию это означает поиск «sun.beans.infos.OurButtonBeanInfo».
Если класс предоставляет явную информацию BeanInfo о себе, мы добавляем ее к сведениям BeanInfo, полученным при анализе производных классов, но считаем явную информацию окончательной для текущего класса и его базовых классов и не продолжаем поиск выше по цепочке суперклассов.
Если для класса не найдена явная информация BeanInfo, мы используем низкоуровневую рефлексию для изучения методов класса и применяем стандартные шаблоны проектирования, чтобы определить методы доступа к свойствам, источники событий и открытые методы. Затем мы анализируем суперкласс этого класса и добавляем сведения из него (и, возможно, продолжаем анализ выше по цепочке суперклассов).
Дополнительные сведения об интроспекции и шаблонах проектирования см. в спецификации JavaBeans.
- Начиная с:
- 1.1
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
IGNORE_ALL_BEANINFO |
Флаг, указывающий, что нужно игнорировать всю информацию beaninfo. |
static final int |
IGNORE_IMMEDIATE_BEANINFO |
Флаг, указывающий, что нужно игнорировать непосредственную информацию beaninfo. |
static final int |
USE_ALL_BEANINFO |
Флаг, указывающий, что нужно использовать всю информацию beaninfo. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static String |
decapitalize |
Вспомогательный метод, преобразующий строку в формат регистра, используемый для имен переменных Java. |
static void |
flushCaches() |
Очищает все внутренние кэши Introspector. |
static void |
flushFromCaches |
Очищает кэшированные внутренние сведения Introspector для указанного класса. |
static BeanInfo |
getBeanInfo |
Выполняет интроспекцию Java Bean и получает сведения обо всех его свойствах, доступных методах и событиях. |
static BeanInfo |
getBeanInfo |
Выполняет интроспекцию Java bean и получает сведения обо всех его свойствах, доступных методах и событиях с учетом управляющих флагов. |
static BeanInfo |
getBeanInfo |
Выполняет интроспекцию Java bean и получает сведения обо всех его свойствах и доступных методах до указанной точки остановки. |
static BeanInfo |
getBeanInfo |
Выполняет интроспекцию Java Bean и получает сведения обо всех его свойствах, доступных методах и событиях до указанной точки stopClass с учетом управляющих flags. |
static String[] |
getBeanInfoSearchPath() |
Возвращает список имен пакетов, в которых будут искаться классы BeanInfo. |
static void |
setBeanInfoSearchPath |
Изменяет список имен пакетов, в которых будут искаться классы BeanInfo. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Показывает, равен ли какой-либо другой объект этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удален в будущей версии. Финализация устарела и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
USE_ALL_BEANINFO
public static final int USE_ALL_BEANINFO
- Начиная с:
- 1.2
- См. также:
IGNORE_IMMEDIATE_BEANINFO
public static final int IGNORE_IMMEDIATE_BEANINFO
- Начиная с:
- 1.2
- См. также:
IGNORE_ALL_BEANINFO
public static final int IGNORE_ALL_BEANINFO
- Начиная с:
- 1.2
- См. также:
Подробное описание методов
getBeanInfo
public static BeanInfo getBeanInfo(Class<?> beanClass) throws IntrospectionException
Если для Java Bean ранее выполнялась интроспекция класса BeanInfo, этот класс BeanInfo извлекается из кэша BeanInfo.
- Параметры:
-
beanClass— класс bean-компонента, подлежащий анализу. - Возвращает:
- Объект BeanInfo с описанием целевого bean-компонента.
- Вызывает:
-
IntrospectionException— если во время интроспекции возникает исключение. - См. также:
getBeanInfo
public static BeanInfo getBeanInfo(Class<?> beanClass, int flags) throws IntrospectionException
Если для Java Bean ранее выполнялась интроспекция класса BeanInfo с теми же аргументами, этот класс BeanInfo извлекается из кэша BeanInfo.
- Параметры:
-
beanClass— класс bean-компонента, подлежащий анализу. -
flags— флаги управления интроспекцией. Если flags == USE_ALL_BEANINFO, используются все обнаруженные классы BeanInfo. Если flags == IGNORE_IMMEDIATE_BEANINFO, игнорируются все сведения BeanInfo, связанные с указанным beanClass. Если flags == IGNORE_ALL_BEANINFO, игнорируются все сведения BeanInfo, связанные с указанным beanClass или любым из его родительских классов. - Возвращает:
- Объект BeanInfo с описанием целевого bean-компонента.
- Вызывает:
-
IntrospectionException— если во время интроспекции возникает исключение. - Начиная с:
- 1.2
getBeanInfo
public static BeanInfo getBeanInfo(Class<?> beanClass, Class<?> stopClass) throws IntrospectionException
Если для Java Bean ранее выполнялась интроспекция класса BeanInfo с теми же аргументами, этот класс BeanInfo извлекается из кэша BeanInfo.
- Параметры:
-
beanClass— класс bean-компонента, подлежащий анализу. -
stopClass— базовый класс, на котором нужно остановить анализ. Методы, свойства и события класса stopClass и его базовых классов не будут учитываться при анализе. - Возвращает:
- объект BeanInfo для bean-компонента
- Вызывает:
-
IntrospectionException— если во время интроспекции возникает исключение.
getBeanInfo
public static BeanInfo getBeanInfo(Class<?> beanClass, Class<?> stopClass, int flags) throws IntrospectionException
stopClass с учетом управляющих flags. - USE_ALL_BEANINFO
- Будут использоваться все обнаруженные сведения BeanInfo.
- IGNORE_IMMEDIATE_BEANINFO
- Будут игнорироваться все сведения BeanInfo, связанные с указанным
beanClass. - IGNORE_ALL_BEANINFO
- Будут игнорироваться все сведения BeanInfo, связанные с указанным
beanClassили любым из его родительских классов.
stopClass и его родительских классов не будут учитываться при анализе. Если для Java Bean ранее выполнялась интроспекция класса BeanInfo с теми же аргументами, этот класс BeanInfo извлекается из кэша BeanInfo.
- Параметры:
-
beanClass— класс bean-компонента, подлежащий анализу -
stopClass— родительский класс, на котором нужно остановить анализ -
flags— флаги управления интроспекцией - Возвращает:
- объект BeanInfo с описанием целевого bean-компонента
- Вызывает:
-
IntrospectionException— если во время интроспекции возникает исключение - Начиная с:
- 1.7
decapitalize
public static String decapitalize(String name)
Поэтому «FooBah» преобразуется в «fooBah», а «X» — в «x», но «URL» остается «URL».
- Параметры:
-
name— строка, для которой нужно изменить регистр первого символа на нижний. - Возвращает:
- Строку с первым символом в нижнем регистре.
getBeanInfoSearchPath
public static String[] getBeanInfoSearchPath()
- Возвращает:
- Массив имен пакетов, в которых выполняется поиск классов BeanInfo. Значение этого массива по умолчанию зависит от реализации; например, реализация Sun изначально устанавливает значение {"sun.beans.infos"}.
setBeanInfoSearchPath
public static void setBeanInfoSearchPath(String[] path)
- Параметры:
-
path— массив имен пакетов.
flushCaches
public static void flushCaches()
- Начиная с:
- 1.2
flushFromCaches
public static void flushFromCaches(Class<?> clz)
- Параметры:
-
clz— объект Class, кэш которого нужно очистить. - Вызывает:
-
NullPointerException— если объект Class равен null. - Начиная с:
- 1.2
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.