Spec-Zone .ru
спецификации, руководства, описания, API
|
public class Introspector extends Object
Для каждого из тех трех видов информации Introspector будет отдельно анализировать class боба и суперклассы, ища или явную или неявную информацию и использовать ту информацию, чтобы создать объект BeanInfo, который всесторонне описывает целевой боб.
Для каждого class "Foo" явная информация может быть доступной, если там существует соответствующий class "FooBeanInfo", который обеспечивает ненулевое значение когда запрошено для информации. Мы сначала ищем BeanInfo class, беря полное полностью определенное имя пакета целевого боба class и добавляя "BeanInfo", чтобы сформировать новое имя class. Если это перестало работать, то мы берем заключительный компонент имени класса этого имени, и ищем тот class в каждом из пакетов, определенных в пути поиска пакета BeanInfo.
Таким образом для class такой как "sun.xyz. OurButton" мы сначала искали бы BeanInfo class, вызванный "sun.xyz. OurButtonBeanInfo" и если это перестало работать, мы будем смотреть в каждом пакете в пути поиска BeanInfo для OurButtonBeanInfo class. С путем поиска значения по умолчанию это означало бы искать "sun.beans.infos. OurButtonBeanInfo".
Если class предоставляет явному BeanInfo о себе тогда, мы добавляем, что к информации о BeanInfo получили из анализа любых производных классов, но мы расцениваем явную информацию, как являющуюся категоричным для текущего class и его базовых классов, и не продолжаем дальше цепочку суперкласса.
Если мы не находим явный BeanInfo на class, мы используем низкоуровневое отражение, чтобы изучить методы class и применить стандартные шаблоны разработки, чтобы идентифицировать средства доступа свойства, источники событий, или открытые методы. Мы тогда продолжаем, чтобы проанализировать суперкласс class и добавить в информации от этого (и возможно на цепочке суперкласса).
Для получения дополнительной информации о самоанализе и шаблонах разработки, пожалуйста, консультируйтесь со
Модификатор и Тип | Поле и Описание |
---|---|
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)
Сбросьте внутреннюю кэшируемую информацию Интроспектора для данного class.
|
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, class для Боба Java ранее Анализировался тогда BeanInfo class, получается от кэша BeanInfo.
beanClass
- Боб class, который будет проанализирован.IntrospectionException
- если исключение происходит во время самоанализа.flushCaches()
, flushFromCaches(java.lang.Class<?>)
public static BeanInfo getBeanInfo(Class<?> beanClass, int flags) throws IntrospectionException
Если BeanInfo, class для Боба Java ранее Анализировался основанный на тех же самых параметрах тогда BeanInfo class, получается от кэша BeanInfo.
beanClass
- Боб class, который будет проанализирован.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, class для Боба Java ранее Анализировался основанный на тех же самых параметрах, то BeanInfo class получается от кэша BeanInfo.
beanClass
- Боб class, который будет проанализирован.stopClass
- Базовый класс, в котором можно остановить анализ. Любые методы/свойства/события в stopClass или в его базовых классах будут проигнорированы в анализе.IntrospectionException
- если исключение происходит во время самоанализа.public static BeanInfo getBeanInfo(Class<?> beanClass, Class<?> stopClass, int flags) throws IntrospectionException
stopClass
укажите подвергающийся некоторому управлению flags
. beanClass
будет проигнорирован.beanClass
или любой из его родительских классов будет проигнорирован.stopClass
или в его родительских классах будет проигнорирован в анализе. Если BeanInfo, class для Боба Java ранее анализировался основанный на тех же самых параметрах тогда BeanInfo class, получается от кэша BeanInfo.
beanClass
- боб class, который будет проанализированstopClass
- родительский class, в котором можно остановить анализ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 и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92