2009-05-26 11 views
2

Как я могу получить доступ к переменной, определенной внутри метода, используя отражение?Можно ли получить переменную метода с помощью отражения?

Мне нужно создать критерии в Hibernate. База данных основана на атрибутах.

Рассмотрите фильм. У фильма может быть много языков и много жанров. , например.

Movieid   Property   Value 
1     Language   Hindi 
1     Language   English 
1     genre    action 
2     genre    comedy 

Предположим, что существует тысячи записей разных фильмов. Пользователь выбирает набор жанров (действий) и языков (хинди, английский) для фильтрации результата. Теперь я должен создать критерии в следующем порядке: выражение = (свойство = английский и жанр = действие) или (свойство = хинди и жанр = действие)

Для реализации я должен искать в локальную переменную, определенную внутри условия цикла.

+1

В чем необходимость? – Gishu

ответ

18

Вы не можете. Если он определен в методе, это локальная переменная, определенная только в этой области. Поскольку у метода не было никакого состояния вне его объема, вам нечего делать.

Доступ к члену класса (который, по определению, является состоянием), вы можете access via "regular" reflection.

1

Я предполагаю, что ваши данные для этих фильмов хранятся в СУБД. Просто сделайте простой реляционный запрос, чтобы получить именно те результаты, которые вам нужны. Эта проблема является прекрасным примером того, для чего люди разработали системы управления реляционными базами данных.