Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интроспекция и рефлексия, Что есть что? 
:(
    Опции темы
serious
Дата 16.11.2006, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 15.2.2003
Где: Пенза

Репутация: 1
Всего: 1



Объясните пожалуйста на пальцах, что это такое. Точнее, я немного представляю, что такое интроспекция, но для чего она используется, мне не совсем понятно.


--------------------
Я знаю то, что ничего не знаю, а некоторые не знают и этого.
PM MAIL   Вверх
LSD
Дата 16.11.2006, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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.
PM MAIL WWW   Вверх
batigoal
Дата 17.11.2006, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



1) Можно использовать рефлексию для разработки плагинов. Т.е. подкинул программе jar - и она разобралась, что в нем есть. Хотя, конечно, лучше это делать с помощью интерфейсов\конфигурационных файлов.
2) Хороший пример использования рефлексии - JDBC. Реальный драйвер базы подхватывается уже в рантайме.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
serious
Дата 17.11.2006, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 15.2.2003
Где: Пенза

Репутация: 1
Всего: 1



А чем они отличаются, никак не могу понять... Рефлексия - это, как я понял, динамическое определение свойств и методов класса?


--------------------
Я знаю то, что ничего не знаю, а некоторые не знают и этого.
PM MAIL   Вверх
batigoal
Дата 17.11.2006, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Как я понимаю, это очень близкие понятия. Интроспекция базируется на рефлексии. Reflection - это механизм, API, с помощью которого можно получить информацию о классах и интерфейсах. В рамках JavaBeans то же самое называется интроспекцией, причем реализована она с помощью того самого java.lang.reflect.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
serious
Дата 17.11.2006, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 15.2.2003
Где: Пенза

Репутация: 1
Всего: 1



Если это фактически одно и то же, зачем вводить путаницу? Или есть все-таки какое-то неуловимое отличие?  smile


--------------------
Я знаю то, что ничего не знаю, а некоторые не знают и этого.
PM MAIL   Вверх
tux
Дата 17.11.2006, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 31
Всего: 132



Цитата

Reflection (the java.lang.reflect package) is primarily for very generic programs such as database browsers or visual code editors. Reflection allows Java code to discover information about the fields, methods and constructors of loaded classes and to dynamically invoke them. Reflection is for dealing with class files you know very little about ahead of time. It would be of interest for example to the author of a BeanBox editor to import various foreign beans.

Цитата

Introspection - studying a Javabean with reflection to discover its properties.

По-моему, разница очевидна. Reflection - возможность получить метаданные класса, introspection - получение информации об атрибутах с использование reflection, причем только для javabean.

Цитаты отсюда - http://mindprod.com/index.html.
PM MAIL Skype GTalk Jabber YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0501 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.