2009-05-26 10 views
2

Comment puis-je accéder à une variable définie à l'intérieur d'une méthode en utilisant la réflexion?Peut-on accéder à une variable de méthode en utilisant la réflexion?

Je dois créer des critères dans Hibernate. La base de données est basée sur un attribut.

Considérons un film. Un film peut avoir plusieurs langues et plusieurs genres. par exemple.

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

Supposons qu'il existe un millier d'enregistrements de films différents. L'utilisateur sélectionne un ensemble de genres (action) et de langues (hindi, anglais) pour filtrer le résultat. Maintenant, je dois créer des critères dans cet ordre: expression = (propriété = anglais et genre = action) ou (propriété = hindi et genre = action)

Pour l'implémentation, je dois rechercher une variable locale définie à l'intérieur d'une condition de boucle for.

+1

De quoi avez-vous besoin? – Gishu

Répondre

18

Vous ne pouvez pas. Si elle est définie dans une méthode, est-ce une variable locale définie dans cette portée uniquement. Comme la méthode n'a pas d'état en dehors de sa portée, vous n'avez rien à y accéder.

En accédant à un membre de la classe (qui, par définition, est un état), vous pouvez access via "regular" reflection.

1

Je suppose que vos données pour ces films sont stockées dans un SGBDR. Faites simplement une requête relationnelle simple pour obtenir exactement les résultats dont vous avez besoin. Ce problème est un parfait exemple du type de développement de systèmes de gestion de bases de données relationnelles.

Questions connexes