2012-03-21 3 views
1

Можно создать дубликат:
What is reflection, and why is it useful?Что такое отражение? (Например, Reflection API Java)

Так я баловаться с Reflection API в последнее время, и это, кажется, здорово, чтобы ввернуть вокруг с здесь и там но что именно его использовать?

Вы видите, все это интересно получить имена полей/методов и типы возвращаемых данных, а также установить доступность и многое другое, но , как это могло бы быть возможно [отражение], если вы можете прочитать java-файл/класс с помощью собственного глаза?

Возможно, я действительно незнаю или я не понимаю полную концепцию этого размышления, но не могли бы вы объяснить мне, каким образом это может быть полезно?

+0

Представьте себе структуру сериализации, которая принимает «POJO» и превращает ее в JSON или XML. (Они существуют). Структура может быть динамически определена (с аннотациями или без них), просто «выкапывая», даже если она передается в «Object»: короче говоря, это для того, чтобы делать вещи * в автоматическом режиме *, не прибегая к учету определенного времени компиляции тип. –

ответ

4

Бывают случаи, когда вы хотите иметь библиотеку, которая может обрабатывать любые типы данных без необходимости читать файлы классов.

например. Сериализация, рамки подключения к базам данных, схемы внедрения зависимостей, рамки, которые используют аннотации.

+1

Это на самом деле более полезно, чем я мог себе представить. Спасибо друг. – ZimZim

0

Я использовал его для генерации ключей и значений из объекта, к которому у меня не было доступа к изменению.

Итак, если у вас есть большая база кода, а команда «владеет» классом, который вам нужно использовать, но он действительно установлен в камне. То есть никаких дальнейших изменений, и вам действительно нужно преобразовать их в свой собственный формат, чем делать это вручную, что утомительно, так что вы можете сделать, это получить имя поля и его значение и в соответствии с вашими правилами поместить его в свой собственный объект.

0

Отражение используется с дженериками. Таким образом, одна часть кода может обрабатывать множество типов объектов.

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

Смежные вопросы