2009-05-26 73 views
2

如何使用反射訪問在方法內定義的變量?我不得不在Hibernate中創建條件。數據庫是基於屬性的。可以使用反射訪問方法變量嗎?

考慮一部電影。一部電影可以有許多種語言和多種流派。 例如

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

讓我們假設有一千個不同電影的記錄。用戶選擇一組流派(動作)和語言(印地語,英語)來過濾結果。現在,我必須按以下順序創建條件: expression =(property = english and genre = action)或(property = hindi and genre = action)

對於實現,我必須查找局部變量在for循環條件中。

+1

這需要什麼? – Gishu 2009-05-26 11:16:48

回答

18

你不行。如果它是在方法中定義的,它是僅在該範圍中定義的局部變量。由於該方法沒有超出其範圍的狀態,因此您無權訪問任何內容。

訪問類成員(根據定義,這是一個狀態),您可以access via "regular" reflection

1

我猜你的這些電影的數據存儲在RDBMS中。只需做一個簡單的關係查詢即可獲得您需要的結果。這個問題是人們開發關係數據庫管理系統的一個很好的例子。