2012-10-19 16 views
4

我在服務類中的方法,對任何域對象執行的休眠更新:IntelliJ中是否有一種方法可以對方法進行使用搜索,並通過傳遞給方法的特定參數對其進行過濾?

update(Object obj) 

它是從類很多的叫我的項目的不同類型的對象。當我們需要一個特定的域對象時,我想查找這個方法的所有用法。即調用方法調用至極執行我的標題對象的更新:

serviceClass.update(Title title) 

我使用的IntelliJ作爲我的IDE,我想知道是否有辦法找到所有的用法。 有沒有人有IDEA如何做到這一點?

非常感謝提前, 羅尼

+1

你嘗試過[SSR](http://wiki.jetbrains.net/intellij/Basics_of_working_with_structural_search)嗎? – CrazyCoder

+0

很酷,謝謝你的提示!我試圖製作一個合適的搜索模板,但是我可以找到任何解決方案來在方法參數上創建''實例''測試。我需要這樣做,因爲該方法可以被稱爲像'objectDAO.update(t)'或'objectDAO.update(title)'或任何其他參數命名我們的程序員剛剛想到的......任何想法我怎麼可以處理這個(事情? – rontron

+1

嘗試'方法調用'現有模板並修改它[像這樣](http://img145.imageshack.us/img145/2333/20121019170202.png)。 – CrazyCoder

回答

5

我曾與一個小樣本項目中嘗試過了,之所以能夠取得使用Structural Search and Replace功能與改進method calls模板所需的行爲:

enter image description here

$MethodCall$文本約束,文本/正則表達式應設置爲update,以便其他名稱的方法被忽略。 $Parameter$發生次數,最小計數應設置爲1以忽略不帶或不帶參數的方法調用。

結果:

results

+1

我還爲變量$ MethodCall $添加了一個**文本約束** _update_只獲取用title調用的更新方法。出於某種原因,我也得到一些更新()方法與emtpy參數,但只有幾個,所以我可以忍受... – rontron

+0

感謝您的指針,我會更新答案。如果將參數最小數設置爲1,則它將不匹配沒有參數的方法調用。 – CrazyCoder

0

如果你有興趣在調用鏈所提供的特定輸入到給定的方法,嘗試Analyze->數據流在這裏命令。

這使您可以查看哪些值通過哪些呼叫鏈傳入。並且,例如,其中null值可能來自於。

相當強大的功能,真的。

相關問題