Spec-Zone .ru
спецификации, руководства, описания, API
|
public class Introspector extends Object
Для каждого из тех трех видов информации Introspector будет отдельно анализировать класс боба и суперклассы, ища или явную или неявную информацию и использовать ту информацию, чтобы создать объект BeanInfo, который всесторонне описывает целевой боб.
Для каждого класса "Foo" явная информация может быть доступной, если там существует соответствующий класс "FooBeanInfo", который обеспечивает ненулевое значение когда запрошено для информации. Мы сначала ищем класс BeanInfo, беря полное полностью определенное имя пакета целевого бобового класса и добавляя "BeanInfo", чтобы сформировать новое имя класса. Если это перестало работать, то мы берем заключительный компонент имени класса этого имени, и ищем тот класс в каждом из пакетов, определенных в пути поиска пакета BeanInfo.
Таким образом для класса такой как "sun.xyz. OurButton" мы сначала искали бы класс BeanInfo, вызванный "sun.xyz. OurButtonBeanInfo" и если это перестало работать, мы будем смотреть в каждом пакете в пути поиска BeanInfo для класса OurButtonBeanInfo. С путем поиска по умолчанию это означало бы искать "sun.beans.infos. OurButtonBeanInfo".
Если класс предоставляет явному BeanInfo о себе тогда, мы добавляем, что к информации о BeanInfo получили из анализа любых производных классов, но мы расцениваем явную информацию, как являющуюся категоричным для текущего класса и его базовых классов, и не продолжаем дальше цепочку суперкласса.
Если мы не находим явный BeanInfo на классе, мы используем низкоуровневое отражение, чтобы изучить методы класса и применить стандартные шаблоны разработки, чтобы идентифицировать средства доступа свойства, источники событий, или открытые методы. Мы тогда продолжаем, чтобы проанализировать суперкласс класса и добавить в информации от этого (и возможно на цепочке суперкласса).
Для получения дополнительной информации о самоанализе и шаблонах разработки, пожалуйста, консультируйтесь со
Модификатор и Тип | Поле и Описание |
---|---|
static int |
IGNORE_ALL_BEANINFO |
static int |
IGNORE_IMMEDIATE_BEANINFO |
static int |
USE_ALL_BEANINFO |
Модификатор и Тип | Метод и Описание |
---|---|
static String |
decapitalize(String name)
Служебный метод, чтобы взять строку и преобразовать это в нормальное написание прописными буквами имени переменной Java.
|
static void |
flushCaches()
Сбросьте все внутренние кэши Интроспектора.
|
static void |
flushFromCaches(Class<?> clz)
Сбросьте внутреннюю кэшируемую информацию Интроспектора для данного класса.
|
static BeanInfo |
getBeanInfo(Class<?> beanClass)
Займитесь самоанализом на Бобе Java и узнайте обо всех его свойствах, представленных методах, и событиях.
|
static BeanInfo |
getBeanInfo(Class<?> beanClass, Class<?> stopClass)
Займитесь самоанализом на бобе Java и изучите все о его свойствах, представленных методах, ниже данной точки "остановки".
|
static BeanInfo |
getBeanInfo(Class<?> beanClass, Class<?> stopClass, int flags)
Займитесь самоанализом на Бобе Java и узнайте обо всех его свойствах, представленных методах и событиях, ниже данного
stopClass укажите подвергающийся некоторому управлению flags . |
static BeanInfo |
getBeanInfo(Class<?> beanClass, int flags)
Займитесь самоанализом на бобе Java и узнайте обо всех его свойствах, представленных методах, и событиях согласно некоторым флагам управления.
|
static String[] |
getBeanInfoSearchPath()
Получает список имен пакета, которые будут использоваться для того, чтобы найти классы BeanInfo.
|
static void |
setBeanInfoSearchPath(String[] path)
Измените список имен пакета, которые будут использоваться для того, чтобы найти классы BeanInfo.
|
public static final int USE_ALL_BEANINFO
public static final int IGNORE_IMMEDIATE_BEANINFO
public static final int IGNORE_ALL_BEANINFO
public static BeanInfo getBeanInfo(Class<?> beanClass) throws IntrospectionException
Если класс BeanInfo для Боба Java ранее Анализировался тогда, класс BeanInfo получается от кэша BeanInfo.
beanClass
- Бобовый класс, который будет проанализирован.IntrospectionException
- если исключение происходит во время самоанализа.flushCaches()
, flushFromCaches(java.lang.Class<?>)
public static BeanInfo getBeanInfo(Class<?> beanClass, int flags) throws IntrospectionException
Если класс BeanInfo для Боба Java ранее Анализировался основанный на тех же самых параметрах тогда, класс BeanInfo получается от кэша BeanInfo.
beanClass
- Бобовый класс, который будет проанализирован.flags
- Флаги, чтобы управлять самоанализом. Если флаги == USE_ALL_BEANINFO тогда, мы используем все классы BeanInfo, которые мы можем обнаружить. Если флаги == IGNORE_IMMEDIATE_BEANINFO тогда мы игнорируем какой-либо BeanInfo, связанный с указанным beanClass. Если флаги == IGNORE_ALL_BEANINFO тогда мы игнорируем весь BeanInfo, связанный с указанным beanClass или каким-либо из его родительских классов.IntrospectionException
- если исключение происходит во время самоанализа.public static BeanInfo getBeanInfo(Class<?> beanClass, Class<?> stopClass) throws IntrospectionException
Если класс BeanInfo для Боба Java ранее Анализировался основанный на тех же самых параметрах, то класс BeanInfo получается от кэша BeanInfo.
beanClass
- Бобовый класс, который будет проанализирован.stopClass
- Базовый класс, в котором можно остановить анализ. Любые методы/свойства/события в stopClass или в его базовых классах будут проигнорированы в анализе.IntrospectionException
- если исключение происходит во время самоанализа.public static BeanInfo getBeanInfo(Class<?> beanClass, Class<?> stopClass, int flags) throws IntrospectionException
stopClass
укажите подвергающийся некоторому управлению flags
. beanClass
будет проигнорирован.beanClass
или любой из его родительских классов будет проигнорирован.stopClass
или в его родительских классах будет проигнорирован в анализе. Если класс BeanInfo для Боба Java ранее анализировался основанный на тех же самых параметрах тогда, класс BeanInfo получается от кэша BeanInfo.
beanClass
- бобовый класс, который будет проанализированstopClass
- родительский класс, в котором можно остановить анализflags
- флаги, чтобы управлять самоанализомIntrospectionException
- если исключение происходит во время самоанализаpublic static String decapitalize(String name)
Таким образом "FooBah" становится "fooBah", и "X" становится "x", но "URL" остается как "URL".
name
- Строка, чтобы быть decapitalized.public static String[] getBeanInfoSearchPath()
public static void setBeanInfoSearchPath(String[] path)
Во-первых, если есть менеджер безопасности, checkPropertiesAccess
метод вызывают. Это могло привести к SecurityException.
path
- Массив имен пакета.SecurityException
- если менеджер безопасности существует и checkPropertiesAccess
метод не позволяет устанавливать системных свойств.SecurityManager.checkPropertiesAccess()
public static void flushCaches()
public static void flushFromCaches(Class<?> clz)
clz
- Объект класса, который будет сброшен.NullPointerException
- Если объект Класса является нулем.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.