![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| serious |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 15.2.2003 Где: Пенза Репутация: 1 Всего: 1 |
Объясните пожалуйста на пальцах, что это такое. Точнее, я немного представляю, что такое интроспекция, но для чего она используется, мне не совсем понятно.
-------------------- Я знаю то, что ничего не знаю, а некоторые не знают и этого. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Да много для чего. Например она используется IDE для того чтобы работать с любыми JavaBeads компонентами. С ее помощью можно работать с классами, о которых ничего не было известно на момент компиляции. Например мы можем в файл настроек записать имя класса и имена propertys которые надо установить, а затем в рантайме это сделать и получить уже сконфигурированный объект.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
1) Можно использовать рефлексию для разработки плагинов. Т.е. подкинул программе jar - и она разобралась, что в нем есть. Хотя, конечно, лучше это делать с помощью интерфейсов\конфигурационных файлов.
2) Хороший пример использования рефлексии - JDBC. Реальный драйвер базы подхватывается уже в рантайме. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| serious |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 15.2.2003 Где: Пенза Репутация: 1 Всего: 1 |
А чем они отличаются, никак не могу понять... Рефлексия - это, как я понял, динамическое определение свойств и методов класса?
-------------------- Я знаю то, что ничего не знаю, а некоторые не знают и этого. |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Как я понимаю, это очень близкие понятия. Интроспекция базируется на рефлексии. Reflection - это механизм, API, с помощью которого можно получить информацию о классах и интерфейсах. В рамках JavaBeans то же самое называется интроспекцией, причем реализована она с помощью того самого java.lang.reflect.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| serious |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 15.2.2003 Где: Пенза Репутация: 1 Всего: 1 |
Если это фактически одно и то же, зачем вводить путаницу? Или есть все-таки какое-то неуловимое отличие?
-------------------- Я знаю то, что ничего не знаю, а некоторые не знают и этого. |
|||
|
||||
| tux |
|
||||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
По-моему, разница очевидна. Reflection - возможность получить метаданные класса, introspection - получение информации об атрибутах с использование reflection, причем только для javabean. Цитаты отсюда - http://mindprod.com/index.html. |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |